MySQL中带有自增键,删除部分数据后,再将MySQL重启后,自增键是继续编还是重新编

如果表的类型是MyISAM,则会在现有的基础上继续编。因为MyISAM表会把自增主键的最大ID记录到数据文件里,重启MySQL自增主键的最大ID也不会丢失。

如果表的类型是InnoDB,则会重新编。因为InnoDB只是会把自增主键的最大ID记录到内存中,所以重启数据库或者对表进行OPTIMIZE操作,都会导致最大的ID丢失。

如一张表里有自增ID主键,往里面INSERT了20条数据后,删除第13,14,15条记录后,再把MySQL重启,再INSERT一条记录,则当表的类型是MyISAM时,这条记录的ID是21;当表的类型是InnoDB时,这条记录的ID是18。

你可能感兴趣的:(MySQL知识手册,mysql,数据库,sql)