我正在开发一个社交网站,其读写比例大约为 90/10。尝试决定使用哪种 MySQL 引擎。我感兴趣的是:
- 数据库
- PBXT
- 托库数据库
就我的用例而言,它们有哪些优缺点?
几个具体问题:
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 的作者)。