mysql百万级别重排主键id(网上的删除重建id在大数据量下会出错)
网上教程:
先删除旧的主键 再新建主键 ;数据量少时没问题,不会出现主键自增空缺间隔的情况(如:1,2,3,5);但是大数据量时会出现如上所述问题(可能是内部mysql多进程或多线程同时操作引起问题)。
解决办法:
表结构如下:
执行mysql 脚本如下:
# 创建表备份 create table user_account_copy like user_account; # 插入数据 INSERT INTO user_account_copy (mobile,passwd,role,created_time,updated_time) select mobile,passwd,role,created_time,updated_time from user_account; # 重命名表 rename table user_account to user_account_old; rename table user_account_copy to user_account;
解决问题的思路:从 user_account表插入数据到user_account_copy时 只 插入 非 主键的数据,每插入一条数据 主键就会自增一条;
效果如下图: