Mysql auto_increment 重置而不重建索引?

Mysql auto_increment 重置而不重建索引?

一定有一种方法可以重置表上的 auto_increment 值,而无需重建整个索引。我有一张包含超过 20 亿行的表,其中意外插入了一个接近 42 亿的 ID。根据过去的经验,我知道尝试将 auto_increment 值恢复到应有的值将迫使 mysql 重建整个索引,对于这种大小的表,这可能需要 24 小时。说实话,我无法相信这就是它的默认工作方式。完全没有必要仅仅因为您想更改此值而重建整个表索引。

一定有办法。但我找不到任何办法。请提供想法!

(重建索引,我知道 myisamchk 可以比 mysql 进程本身快 100 倍。但我无法告诉 mysql 在更改自动增量 ID 后使用 myisamchk 而不是它自己来重建索引。一定有办法!!!)

答案1

基于此文章,看起来你可以将意外的 ID 重置为正确的值,或者删除该行然后重新开始服务器,因为 innodb 表的自动递增值保存在内存中。我之前没有尝试过,但它可能会起作用。

相关内容