私は、およそ90/10の読み取り/書き込み分割のソーシャルWebサイトに取り組んでいます。 MySQLエンジンを決定しようとしています。私が興味を持っているのは:
私のユースケースにおけるそれらの長所と短所は何ですか?
いくつかの具体的な質問:
PBXTは、二重書き込みを回避するログベースの構造を使用します。非常にエレガントに聞こえますが、私が見たベンチマークでは、XtraDBに比べて利点はほとんどありません。共有できるPBXT/XtraDBの経験はありますか?
TokuDBの音[〜#〜]非常に[〜#〜]興味深い。しかし、私が見たすべてのベンチマークは、シングルスレッドの一括挿入に関するものです。たとえば、1億行を挿入します。これはOLTPにはあまり関係ありません。複数のコアで同時に書き込みと読み取りを行う多数の同時スレッドでのパフォーマンスはどうですか?誰かがそれを試しましたか?
Re:PBXTとXtraDB(InnoDB)
私はその質問をPaulMcCullaghに直接言いました。あなたはここで彼の応答を読むことができます:
http://www.mysqlperformanceblog.com/2009/11/20/paul-mccullagh-answers-your-questions-about-pbxt/
言い換えると、PBXTは汎用のOLTPエンジンであるため、InnoDBとかなり重複しています。直接的な「より良いユースケース」のほとんどはまだわかっていません。
Re:TokuDBとXtraDB(InnoDB)
これらは少し違うと思います。 TokuDBには、OLTPに適している可能性のあるいくつかのプロパティがありますが、実際に輝くのは次のとおりです。
a)大量のデータを処理している場合、インデックスがメモリに収まらなくなるため、挿入が遅くなります(TokuDBが影響を受けない「古典的な」Bツリーの問題)。
b)データに多くのアドホックインデックスが必要な場合。
Vadimはここでこれについて話します: http://www.mysqlperformanceblog.com/2009/04/28/detailed-review-of-tokutek-storage-engine/
-
あなたの説明から、私は多分仮定をして、XtraDBとPBXTが最も明白な選択であると言うつもりです。どちらも機能します。 XtraDBに有利なのは、それがずっと長く存在しているということです。
(免責事項:私はXtraDBの作者であるPerconaで働いています)。