Quite frequently I see customers looking at recovery as on ability to restore data from backup which can be far from being enough to restore the whole system to operating state, especially for complex systems. Instead of looking just at data restore process you better look at the whole process which is required to bring [...]
Recovering Innodb table Corruption
Assume you’re running MySQL with Innodb tables and you’ve got crappy hardware, driver bug, kernel bug, unlucky power failure or some rare MySQL bug and some pages in Innodb tablespace got corrupted. In such cases Innodb will typically print something like this: InnoDB: Database page corruption on disk or a failed InnoDB: file read of [...]
Updated msl (microslow) patch, installation walk-through!
For a couple of months there have been no updates to our msl patch, however recently I managed some time to change this. The functionality was extended a little bit and what’s even more important the patch is available for all the recent MySQL releases. To remind anyone who has not yet come across this [...]
MySQL Error Message Nonsenses
What MySQL honestly was never good at is giving good helpful error messages. Start with basics for example – The error message in case of syntax error gives you information about tokens near by but little details:
1 2 | mysql> select * from user oder by pwd; ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'by pwd' at line 1 |
It would be much better if MySQL would give error give exact position of error (with complex [...]
Add an option to Fail on Innodb Initialize failure, Please ?
I already wrote about this issue but as I is third team I’m helping customers to resolve this “frm corruption” issue it is the time to return to it again. During MySQL 5.0 release cycle the change was made so now MySQL does not stop if Innodb storage engine failed to initialize but starts properly… [...]
Using VIEW to reduce number of tables used
Many Open Source software solutions use database per user (or set of tables per user) which starts to cause problems if it is used on massive scale (blog hosting, forum hosting etc), resulting of hundreds of thousands if not millions of tables per server which can become really inefficient. It is especially inefficient with Innodb [...]
InnoDB in self-compiled MySQL 5.1
If you like to compile MySQL from sources by yourself, for different needs, like debugging, testing etc, you probably can face this issue. What I usually do to fast compile and test is
1 2 3 | ./configure --prefix=/dir/to/mysql make make install |
and then, for example, load the dump of InnoDB from previous version:
1 | mysql testdatabase < dump.sql |
I bet you will not notice all your [...]
Working with large data sets in MySQL
What does working with large data sets in mySQL teach you ? Of course you have to learn a lot about query optimization, art of building summary tables and tricks of executing queries exactly as you want. I already wrote about development and configuration side of the problem so I will not go to details [...]
Commodity Hardware, Commodity Software and Commodity People
In the previous post I mentioned not all architectures and solutions work for Commodity People, and people seems to agree with me. Number of vendors would claim they are in Commodity Software or Hardware business but few would probably mention they are doing it for Commodity People, because few people would like to be called [...]
Merge Tables Gotcha
I had the interesting customer case today which made me to do a bit research on the problem. You can create merge table over MyISAM tables which contain primary key and global uniqueness would not be enforced in this case, this is as far as most people will think about it. In fact however it [...]

