MySQL doesn't kill the server, it's just the way that it's designed that kills the server.
For instance; if you take a look at some redis source, you'll see that instead of it having a large accounts table, it stores accounts as their own keys, e.g. account.1, account.2, etc.. Therefore as long as you tell redis what table to go to, it's going to know where to go straight away.
On MySQL, if you have like 5000 accounts in the account table, you'll start to face performance issues, because when trying to grab the account data, the system has to go through all the previous rows of accounts before it finds the account that it's looking for, which is terrible, this is probably why the server breaks after a large amount of pets/accounts.
If you were to implement a system like on redis on MySQL, it could be a lot faster, it's pretty easy to add in too.
Although, I'm not sure if I'm right on this, it's just what I think/know from experience, but it makes sense in my head.