有谁知道为什么我在新创建的表(零行)上获得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;
提前感谢。
答案 0 :(得分:4)
InnoDB使用共享表空间。这意味着默认情况下,无论数据库如何,所有表都存储在文件系统中的单个文件中。这与例如将每个表存储为单个文件的MyISAM不同。
InnoDB的行为可以改变,虽然我不认为在这种情况下它真的是必要的。见Using Per-Table Tablespaces。
开销可能是已删除行留下的空间,InnoDB会在您插入新数据时重用它。没什么值得关注的。
答案 1 :(得分:0)
可能是因为mysql在'idRol'上生成了一个索引
存储索引需要一些空间,但我不确定这是否是原因。这只是猜测。我不是DBA。