6

私は、ユーザー用のテーブル (フィールド * typelength のカウントに基づいてユーザーごとに 1kbyte のデータ) と、ユーザーに属する同じサイズの約 100 個の物 (物ごとに 0.5kbyte) を持つアプリケーションデータベースを持っています。 " テーブルと "物" テーブル。

これにより、ユーザーあたり約 51k バイトのデータが発生するようです。ただし、MySQL の場合、インデックス テーブルをカバーするために 2 倍にする必要があると聞きました。これにより、ユーザーあたり 102k バイトになります。MySQL で考慮すべき他のデータ拡張要素はありますか? または 102 キロバイトが適切な見積もりですか?

インデックス係数 (これは 2 だと思います) とストレージ効率 (これも 2 だと思います) 以外に、MySQL でのデータ ストレージの乗数はありますか?

4

1 に答える 1

2

短い回答
サイズが MyISAM よりも 2 ~ 3 倍増加することは一般的ですが、4 倍になることはまれです。

InnODB エンジンに関するすべて:
http://dev.mysql.com/doc/refman/5.1/en/innodb-storage-engine.html

InnoDB、MyISAM、およびディスク容量:
http://mysqlha.blogspot.com/2009/01/innodb-myisam-and-disk-space_16.html

MySQL エンジンのスペース使用量の比較:
パート 1: http://marksverbiage.blogspot.com/2008/02/mysql-engines-and-space-usage.html
パート 2: http://marksverbiage.blogspot.com/2008/04/mysql -engines-space-usage-comparison.html

物理的な行構造は次のとおりです:
http://dev.mysql.com/doc/refman/5.0/en/innodb-physical-record.html

多くの変数と問題があります。

  • インデックス、InnoDB にはすべてのセカンダリ インデックスに PK が含まれていることを思い出してください。
  • 鍵を梱包していますか (遅い)?
  • テーブルは冗長ですか?
  • ログ (バイナリ ログ、スロー クエリ ログ、エラー ログなど) を忘れないでください。
  • 行が null 許容として宣言されている場合、行ごとに null 許容列ごとに余分なバイトを追加します。
  • どの文字セットを使用していますか?
于 2011-09-06T22:25:27.010 に答える