ALTER TABLE tablename AUTO_INCREMENT = 10000000
此查询需要很长时间才能更新。为什么?我需要优化此查询。
答案 0 :(得分:9)
ALTER TABLE会导致整个表的重建 - 如果您的表包含很多行,这可能需要很长时间。
如果你只需要提高auto_increment值的值,最快的方法是插入一个虚拟行(如果需要,然后删除该行)。这只需要几分之一秒,而ALTER TABLE可能需要数天才能完成一个大表。
例如,假设我有一个包含auto_increment ID列的表和其他列col1,col2 ...:
insert into autoinc_table set ID = 10000000;
delete from autoinc_table where ID = 10000000;
答案 1 :(得分:5)
用户和管理员数据必须不是由id区分,而是由另一个字段区分。 如果你将id视为一个没有其他意义的抽象标识符,它将为你节省大量的时间和资源,相信我。