MySQL:有人使用过TokuDB存储引擎吗?

15
3个回答

26

如果你正在存储像图片这样的 Blob,不要使用 Tokudb。它有较小的行大小限制。

如果你的数据超过1亿行,请使用 Tokudb。

如果你在意 UPDATE 速度,请不要使用 Tokudb。它的插入速度很快,但与 InnoDB 相比,更新速度较慢,特别是如果你使用 INSERT ON DUPLICATE 语句。

如果你正在存储日志条目,请使用 Tokudb。

如果你想将 MyISAM/InnoDB 的数据使用量缩小超过 5 倍,请使用 Tokudb。我个人已确认他们的分形树+压缩数据后端非常高效。

经验之谈,使用最适合任务的工具。Tokudb 在特定情况下比 InnoDB 和 MyISAM 更好,但并不是天下万事通的替代 DB 引擎。


4
完全同意。我们有三个数据库——两个约为1.5TB,一个40GB。我们已经将这两个大型数据库迁移到了TokuDB,并对其感到惊叹——我们正在看到每秒超过15,000个查询(其中一半是插入/更新),在相当普通的硬件上。加上在线模式维护(列添加/删除、索引创建/删除),它真是太棒了。话虽如此,@Xing关于使用正确的工具来完成工作是正确的——我们将较小的db留在InnoDB上,因为我们发现它在较小的工作负载下表现更好。我们已经在生产中大力运行TokuDB 6个月了,并且没有遇到任何问题。 - Mark B

7
尽管如上所述,TokuDB在更新方面较慢,但在替换方面非常快。通常情况下,您可以使用REPLACE INTO来代替UPDATE。我在拥有180亿行的表上使用TokuDB,没有其他东西能够与之匹敌,对于大表的随机插入,它至少比innodb快100倍。

5
完全用REPLACE INTO替换UPDATES几乎肯定会破坏你的数据库 - 如果REPLACE INTO缺少一些列,它们将被重设为其默认值! 想象一下,如果你的表有一个需要保留其值的引用计数列 - REPLACE INTO将把它设置为零。崩溃! - DroidOS

4

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接