在 MySQL 中重置 AUTO_INCRMENT 需要很长时间
ALTER TABLE tablename AUTO_INCREMENT = 10000000
此查询需要很长时间才能更新。为什么?我需要优化这个查询。
ALTER TABLE tablename AUTO_INCREMENT = 10000000
This query is taking long time to update. Why? I need to optimize this query.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
ALTER TABLE 会导致整个表的重建 - 如果您的表包含许多行,这可能需要很长时间。
如果您只需要增加 auto_increment 值,最快的方法是插入一个虚拟行(然后根据需要删除该行)。这只需要几分之一秒的时间,而对于大型表来说 ALTER TABLE 可能需要几天的时间。
例如,假设我有一个表,其中包含 auto_increment ID 列和其他列 col1、col2...:
ALTER TABLE causes a rebuild of the entire table - if your table contains many rows,this can take ages.
If you just need to bump up the value of the auto_increment value, the quickest way is to insert a dummy row (and then delete that roow if need be). This will only take a fraction of a second, whereas ALTER TABLE can take days for a large table.
For example, suppose I have a table with an auto_increment ID column and other columns col1, col2...:
用户和管理数据不能通过 id 来区分,而是通过另一个字段来区分。
如果您将 id 视为没有其他含义的抽象标识符,它将为您节省大量时间和资源,请相信我。
user and admin data must be distinguished not by id, but by another field.
If you would treat an id as an abstract identifier with no other meanings it will save you a lot of time and resources, trust me.