Mysql
這些用於 OLTP 的 MySQL 引擎(XtraDB、PBXT 或 TokuDB)的優缺點是什麼?
我正在一個社交網站上工作,其讀/寫比例約為 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 工作)。