新mysql表中的开销很高

时间:2009-03-23 18:24:42

标签: mysql overhead

有谁知道为什么我在新创建的表(零行)上获得131.0 MiB的开销? 即时通讯使用phpmy管理员和我的脚本代码是

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

提前感谢。

2 个答案:

答案 0 :(得分:4)

InnoDB使用共享表空间。这意味着默认情况下,无论数据库如何,所有表都存储在文件系统中的单个文件中。这与例如将每个表存储为单个文件的MyISAM不同。

InnoDB的行为可以改变,虽然我不认为在这种情况下它真的是必要的。见Using Per-Table Tablespaces

开销可能是已删除行留下的空间,InnoDB会在您插入新数据时重用它。没什么值得关注的。

答案 1 :(得分:0)

可能是因为mysql在'idRol'上生成了一个索引

存储索引需要一些空间,但我不确定这是否是原因。这只是猜测。我不是DBA。