MySQL 5.1 introduces row based binary logging. In fact, the default binary logging format in GA versions of MySQL 5.1 is ‘MIXED’ STATEMENT*; The binlog_format variable can still be changed per sessions which means it is possible that some of your binary log entries will be written in a row-based fashion instead of the [...]
Why Swapping is bad for MySQL Performance ?
So you get MySQL or other applications using too much memory on the box or OS behaving funny and using more memory for cache and pushing application to the swap. This causes swapping and causes performance problems. This much is obvious. But how bad is it ? Should you count it same as normal Disk [...]
Fast storage: 8 SSD Intel X-25M 80GB benchmarks
I appreciate opportunity Jos van Dongen from Tholis Consulting gave me. He granted me access to servers with 8 attached Intel X-25M 80GB MLC cards. The cards attached to 2 Adaptec 5805 raid controllers, with 4 cards per controller. The cost of setup is 8 x 260$ (X-25M) + 2×500$ (Adaptec 5805) = ~3000$. Available [...]
Quick comparison of MyISAM, Infobright, and MonetDB
Recently I was doing a little work for a client who has MyISAM tables with many columns (the same one Peter wrote about recently). The client’s performance is suffering in part because of the number of columns, which is over 200. The queries are generally pretty simple (sums of columns), but they’re ad-hoc (can access [...]
Innodb performance gotcha w Larger queries.
Couple of days ago I was looking for a way to improve update performance for the application and I was replacing single value UPDATE with multiple value REPLACE (though I also saw the same problem with INSERT ON DUPLICATE KEY UPDATE) As I went from 1 value to 3 or 10 in the batch performance [...]
Friday challenge: ibd recovery
I want to make this Friday a bit more interesting – how do you feel to train a bit in InnoDB data recovery techniques. I have .ibd datafile which was created by query CREATE TABLE `tryme` ( `email` mediumblob, `content` mediumblob ) ENGINE=InnoDB … (SOME PARAMETERS SKIPPED) …; and I inserted one record into this [...]
Detailed review of Tokutek storage engine
(Note: Review was done as part of our consulting practice, but is totally independent and fully reflects our opinion) I had a chance to take look TokuDB (the name of the Tokutek storage engine), and run some benchmarks. Tuning of TokuDB is much easier than InnoDB, there only few parameters to change, and actually out-of-box [...]
XtraDB storage engine release 1.0.2-3 (Spring edition) codename Sapporo
Today we announce release 1.0.2-3 of our XtraDB storage engine. Here is a list of enhancements: Move to MySQL 5.1.31 Scalability fix — ability to use several rollback segments Increasing the number of rseg may be helpful for CPU scale of write-intentional workloads. See benchmark results. Scalability fix — replaced page_hash mutex to page_hash read-write [...]
Poor man’s query logging
Occasionally there is a need to see what queries reach MySQL. The database provides several ways to share that information with you. One is called general log activated with
1 | --log |
(or
1 | --general-log |
in MySQL 5.1+) start-up parameter. The log writes any query being executed by MySQL to a file with limited amount of additional information. [...]
Fighting MySQL Replication Lag
The problem of MySQL Replication unable to catch up is quite common in MySQL world and in fact I already wrote about it. There are many aspects of managing mysql replication lag such as using proper hardware and configuring it properly. In this post I will just look at couple of query design mistakes which [...]

