Q:
Has anyone used the TokuDB storage engine for MySQL?
The product web site claims to have a 50x performance increase over other MySQL storage engines (e.g. Innodb, MyISAM, etc). Here are the performance claims http://tokutek.com/downloads/tokudb-performance-brief.pdf
Is this true?
Any personal experiences with this storage engine in use with MySQL?
A:If you are storing blobs such as images then don't use tokudb. It has a smaller row size limit.
If you have data that's over 100 million rows, use tokudb.
If you are sensitive to UPDATE speed, don't use tokudb. It has very fast insert but as compared to innodb, slower UPDATE speed and especially if you use INSERT ON DUPLICATE statements.
If you are storing log entries, use tokudb.
If you want to shrink your myisam/innnodb's data usage by more than 5x, then use tokudb. I have personally confirmed that their fractal tree + compression data backend is extremely space efficient.
Rule of thumb, use the best tool for the job. Tokudb blows innodb and myisam out of the waters in specific situations but is not a general replacement db engine for everything under the sky.
A:Completely agree. We have three databases - two around 1.5TB and one 40GB. We've moved the two large ones to TokuDB and have been blown away by it - we're seeing over 15k queries per second (half of that is inserts/updates) on fairly ordinary hardware. Add in online schema maintenance (column addition/drops, index creation/drops) and it's been phenomenal. That said, @Xing is right about using the right tool for the job - we've left the smaller db on InnoDB, as we've found it performs better for smaller workloads. We've been running TokuDB hard in production for 6 months, and had zero problems.
A:
Although TokuDB is slow on UPDATE as commented above, it is extremely fast on REPLACE. Usually you can substitute UPDATEs with REPLACE INTO instead. I use TokuDB on tables of up to 18 Billion rows and nothing else comes close, it's at least 100 times faster than innodb for random inserts on big tables.