这些用于 OLTP 的 MySQL 引擎(XtraDB、PBXT 或 TokuDB)的优缺点是什么?

这些用于 OLTP 的 MySQL 引擎(XtraDB、PBXT 或 TokuDB)的优缺点是什么?

我正在开发一个社交网站,其读写比例大约为 90/10。尝试决定使用哪种 MySQL 引擎。我感兴趣的是:

  1. 数据库
  2. PBXT
  3. 托库数据库

就我的用例而言,它们有哪些优缺点?

几个具体问题:

  • PBXT 使用基于日志的结构来避免双重写入。听起来很优雅,但我看到的基准测试并没有显示出比 XtraDB 有任何/太多优势。您有使用 PBXT/XtraDB 的经验可以分享吗?

  • TokuDB 声音非常很有趣。但我见过的所有基准测试都是关于单线程批量插入的 - 例如插入 1 亿行。这与 OLTP 不太相关。当大量并发线程在多个核心上同时写入和读取时,它的性能如何?有人试过吗?

答案1

回复:PBXT 与 XtraDB (InnoDB)

我直接向 Paul McCullagh 提出了这个问题。你可以在这里阅读他的回复:

http://www.mysqlperformanceblog.com/2009/11/20/paul-mccullagh-answers-your-questions-about-pbxt/

换句话说:PBXT 是一个通用的 OLTP 引擎,因此它与 InnoDB 确实有很多重叠。大多数直接的“更好的用例”尚不为人所知。

回复:TokuDB 与 XtraDB (InnoDB)

我认为这些有点不同。虽然 TokuDB 确实有一些可能对 OLTP 有用的属性,但它真正出彩的是:

a) 当你处理如此多的数据时,你的插入速度会因为索引不再适合内存而变慢(这是一个“经典”的 B 树问题,但 TokuDB 不会受到影响)。

b) 当您需要在数据上建立大量临时索引时。

Vadim 在这里谈到了这一点: http://www.mysqlperformanceblog.com/2009/04/28/detailed-review-of-tokutek-storage-engine/

--

根据您的描述,我可能会假设 XtraDB 和 PBXT 是最明显的选择。两者都可以。XtraDB 的优势在于它已经存在很长时间了。

(免责声明:我在 Percona 工作,XtraDB 的作者)。

相关内容