我有一个带有自动增量ID PK的600万记录表。由于过去几周的各种操作,我的起始ID为200万。更新和其他查询需要很长时间,我想知道iD范围从2mil到8mil与1到600万的起点是否负责?我注意到有趣的是,如果我使用一系列说ID>1000000 and ID<1001000
进行选择/更新似乎比ID>1 and ID<1000
慢。
是否值得删除现有的PK并添加一个从1开始的新PK?我知道我可以做到
ALTER TABLE tablename Auto-Increment=1
但我不能在这里做600万现有记录和自动增量ID。
显然我可以尝试和测试,但出于各种原因,包括考虑到桌子,索引等的大小,我想在花时间和精力之前询问是否有人知道明确回答。
更新 现在我做了以下事情:
CREATE TABLE table_new LIKE table;
使用索引和所有
来欺骗表然后:
Alter Table table_new set Auto-Increment=1
因此空的duped表将count重置为1
然后我从原始表插入到duped表中:
Insert into Table_New (FieldA,FieldB,FieldC)
Select FieldA,FIeldB,FieldC from Table
要插入所有记录减去ID字段,以便为每个插入的记录添加自动增量,从1开始作为指定的重新设置,最后当然:
RENAME TABLE table TO table_old;
RENAME TABLE table_new TO table;