web-dev-qa-db-ja.com

TokuDB / InnoDBの質問

TokuDBまたはInnoDBエンジンにデータを挿入するためのより高速なスキームは何ですか? 1秒あたり200以上の挿入。

1つのエンジンの答えは大丈夫です。

TABLE: `game`
`gameId` bigint 20 (PK)
`gameMapId` int 4
`gameType` varchar 20
`createDate` datetime (index)

TABLE: `game`
`idx` bigint 20 (autoincrement PK)
`gameId` bigint 20 (UK)
`gameMapId` int 4
`gameType` varchar 20
`createDate` datetime (index)
1
kargnas

PerconaはすでにTokuDBとInnoDBでいくつかのベンチマークを行っています

10日前の私の投稿を参照してください: TokuDBはMySQLよりもそれほど速くありません

より良い答えもあります

1
RolandoMySQLDBA

以下は両方のエンジン(InnoDBとTokuDB)に有効です。

最初のスキーマには、クラスター化された主キーインデックス(gameId)とセカンダリインデックス(createDate)の2つのインデックスが含まれます。

2番目のスキーマは、クラスター化された主キーインデックス(idx)、一意のセカンダリインデックス(gameId)、およびセカンダリインデックス(createDate)の3つのインデックスを作成します。

したがって、挿入するたびに、2番目に提案されたテーブルスキーマのインデックスのメンテナンスがさらに必要になります。インデックスが追加されると、ディスク上でも大きくなります。

覚えておくべきもう1つの重要な要素は、gameIdによる検索を実行するには、最初のスキーマで1回のルックアップが必要ですが、2番目のスキーマで2回のルックアップが必要になることです(1つはPK値を取得するためのgameIdインデックスで、もう1つはPKで)。

1
tmcallaghan