質問

私は列のためのテーブル、スモールイン、整数、2つのフロートを持っています。各行の予想されるメモリは14バイト(2+4+2*4)です。テーブルには約700,000列があります。プライマリキーとインデックスは設定していません。 Myisamタイプには約10MB(各行の平均15B)がかかりますが、InnoDBタイプには30MBを超える(平均44B)がかかります。ここに何が欠けていますか? Innodbは各行に対して非常に多くのオーバーヘッドを持っているのでしょうか、それともテーブルのステータス番号を信頼していないでしょうか。 GBSに遭遇するデータを保存する必要があるため、さまざまなパラメーターを計量してストレージタイプを決定する必要があります。

役に立ちましたか?

解決

INNODBテーブルは、Myisamに比べてより多くのスペースを占有します。ストレージの使用とInnoDB(クラッシュセーフティ、トランザクション、および外国キー)が提供する機能とのトレードオフがInnodbを好むかどうかは、決定しなければならないものです。自分自身をmyisamからInnodbに切り替えたので、私は戻りません。

あなたが先に進んでInnodbを使用する場合、あなたは間違いなく主要なキー(そして理想的には短いもの)を定義したいと思うでしょう。これは、INNODBがWRTストレージおよびその他のインデックスを動作する方法によるものです。見る このページ.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top