在游戏行业中,经常会遇到删除“死号”的需求;我们的用户id是自增生成的,在删号程序中,会遇到与数据库断开连接,但还在运行的SQL语句;

   对于自增的字段进行行记录的删除,会出现“断裂带”的情况,对于这种无法避免的情况,个人建议在数据维护过程中,analyze table 防止有过多数据存储的碎片;

   对于新的自增id,不会复用老的id;下面列出不同存储引擎对auto_increment的支持:

   对于 innodb,myisam,memory 存储引擎;

   共同点:

   1、序列都是单调递增;

   2、编号依次递增,不会复用曾经删除的id

   3、都可以设置自增ID的初始值;

   4、truncate table之后 计数值从1开始;

   5、表中均只能有一个字段是自增字段;

   不同点:

   MYISAM支持 复合索引里含有自增序列;innodb与memory都不支持;

   对于自增的两个参数(对于多master情况,应多注意这两个参数):

   auto_increment_offset:确定自增字段的起点值

   auto_increment_increment:值变化的增量

   如果auto_increment_offset的值大于auto_increment_increment的值,则auto_increment_offset的值被忽略。