mysql中的auto_increment的问题,innodb表只是把自增主键的最大id记录到内存中,所以重启数据库或者是对表进行optimize操作,都会
发现一个看似很简单的mysql问题,却引起了大家的广泛关注:
这是一道很早的面试题:
一张表,里面有id自增主键,当insert了17条记录之后,删除了第15,16,17条记录,再把mysql重启,再insert一条记录,这条记录的id是18还是15 。
答案:
如果表的类型是myisam,,那么是18。
因为myisam表会把自增主键的最大id记录到数据文件里,重启mysql自增主键的最大id也不会丢失。
如果表的类型是innodb,那么是15。
innodb表只是把自增主键的最大id记录到内存中,所以重启数据库或者是对表进行optimize操作,都会导致最大id丢失。
自己也做了个实验,结果证实了上面的说法。真是惭愧啊,看似简单的问题自己也打错了。
2,另外还有一个就是获取当前数据库表的自增字段数。
