# 1. MySQL自增变量AUTO_INCREMENT重启之后值丢失
MySQL在建表时,推荐使用自增列作为表的主键,这样的表在某些场景下,对提高性能有一定的帮助。但是自增列有一个坑,并且这个坑存在了很久,一直到MySQL 8.0版本,才修复了这个坑,这个坑就是表的自增列变量auto_increment在MySQL重启后,有可能丢失。
1.1. 问题重现
- 创建两张表tb1,tb2,tb1为innodb表,tb2为myisam表,建表语句
MySQL [auto_increment]> show tables;
Empty set (0.00 sec)
MySQL [auto_increment]> CREATE TABLE `tb1`(
-> `id` int(8) NOT NULL AUTO_INCREMENT,
-> PRIMARY KEY (`id`)
-> )ENGINE=InnoDB AUTO_INCREMENT=1001 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
Query OK, 0 rows affected (0.02 sec)
MySQL [auto_increment]> CREATE TABLE `tb2`(
-> `id` int(8) NOT NULL AUTO_INCREMENT,
-> PRIMARY KEY (`id`)
-> )ENGINE=MYISAM AUTO_INCREMENT=1001 DEFAULT CHARSET=ut