2009-03-23 2 views
3

なぜ新しく作成されたテーブル(ゼロ行)に131.0 MiBのオーバーヘッドが生じるのですか? phpmy adminと私のスクリプトのコードを使用して イムは、事前に新しいmysqlテーブルのオーバーヘッドが高い

CREATE TABLE IF NOT EXISTS `mydb`.`mytable` (
    `idRol` INT NOT NULL AUTO_INCREMENT , 
    `Rol` VARCHAR(45) NOT NULL , 
    PRIMARY KEY (`idRol`)) 
ENGINE = InnoDB; 

のおかげです。

+0

すごくお返事いただきありがとうございますが、この場合の高いオーバーヘッドを心配すべきですか?私は私が作成したすべてのテーブルで、同じことが起こっているのを見ています –

+0

あなたはマックを取得する必要があります... –

答えて

4

InnoDBは共有テーブルスペースを使用します。つまり、デフォルトでは、データベースに関係なくすべてのテーブルがファイルシステム内の1つのファイルに格納されます。これは、すべてのテーブルを単一のファイルとして保存するMyISAMとは異なります。

InnoDBの動作は変更できますが、この場合は本当に必要ではないと思います。 Using Per-Table Tablespacesを参照してください。

おそらくオーバーヘッドは削除された行によって残されたスペースであり、InnoDBは新しいデータを挿入するときにそれを再利用します。それは心配することは何もありません。

+0

すごくお返事いただきありがとうございますが、私はこの場合の高いオーバーヘッドを心配すべきですか?私は私が作成したすべてのテーブルで同じことが起こっているのを見ている、ありがとう –

0

MySQLはインデックスを格納する「idRol」

にインデックスを生成したので、それはあるかもしれないが、いくつかのスペースを取りますが、私はこれが理由であるかどうかわからないです。それは唯一の推測です。私はDBAではない。

+0

彼はテーブルが0行を持っていると述べた。 –

関連する問題