MySQL: Has anyone used the TokuDB storage engine?
Asked Answered
M

3

15

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?

Mezcaline answered 17/11, 2009 at 5:45 Comment(0)
R
26

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.

Rainarainah answered 11/4, 2011 at 5:5 Comment(1)
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, @Rainarainah 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.Coffey
D
7

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.

Derina answered 17/4, 2011 at 4:46 Comment(1)
A wholesale replacement of UPDATES WITH REPLACE INTOS will almost certainly break your database - if the REPLACE INTO is missing some columns they will be RESET to their default value! Imagine if your table has a reference count column which needs to retain its value - the REPLACE INTO will set it back to zero. BOOM!Pisolite
C
4

I have the same question. I did find a fairly decent comparison of TokuDB against Innodb

http://www.pythian.com/news/5139/testing-tokudb-faster-and-smaller-for-large-tables/

However, I am interested in any other experiences that others may have had with TokuDB or any other similar storage engine for MySQL.

Another review here http://www.mysqlperformanceblog.com/2009/04/28/detailed-review-of-tokutek-storage-engine/

Cuculiform answered 5/5, 2010 at 15:28 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.