我正在一个社交网站上工作,其读/写比例约为 90/10。试图决定使用 MySQL 引擎。我感兴趣的是:
- XtraDB
- PBXT
- TokuDB
它们对我的用例有什么优缺点?
几个具体问题:
PBXT 使用基于日志的结构来避免双重写入。这听起来很优雅,但我看到的基准测试并没有显示出任何/很多优于 XtraDB 的优势。您有任何使用 PBXT/XtraDB 的经验可以分享吗?
TokuDB 听起来很有趣。但是我看到的所有基准都是关于单线程批量插入的——例如插入 100M 行。这与 OLTP 不太相关。它在多核上同时运行大量并发线程读写的性能如何?有人试过吗?
回复: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) 当您处理如此多的数据时,您的插入速度会因索引不再适合内存而变慢(TokuDB 不会遇到的“经典”B-Tree 问题)。
b) 当您需要对数据有大量临时索引时。
瓦迪姆在这里谈论这个: http ://www.mysqlperformanceblog.com/2009/04/28/detailed-review-of-tokutek-storage-engine/
--
根据您的描述,我可能会做出一个假设,并说 XtraDB 和 PBXT 是最明显的选择。两者都会起作用。XtraDB 的优势在于它存在的时间更长。
(免责声明:我为 XtraDB 的作者 Percona 工作)。