mysql - 我应该在删除多行后重置表索引/优化吗?

标签 mysql optimization indexing sql-delete

我有一个包含 1,000,000 条记录的表,我正在运行一条删除约 70 万行的语句。 auto-increment-index 当然仍然是 1,000,001。之后的最高主键,例如 40,000。

删除如此大量的行后,我应该手动将索引设置回 40,001 还是以任何方式优化表?或者 MySQL 在插入新行和之后在 select 语句中使用索引时不关心这个巨大的差距(在速度方面)?

最佳答案

MySQL manual说:

OPTIMIZE TABLE should be used if you have deleted a large part of a table or if you have made many changes to a table with variable-length rows

但是不要重置主键,它会把事情搞砸。 INT 数据类型(大概)有很大的空间可以从 1M 增长。

就查询速度而言,索引值是 1 000 000 还是 1 000 000 000 并不重要。

关于mysql - 我应该在删除多行后重置表索引/优化吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4899218/

相关文章:

php - 从文本文件读取然后插入 mysql 时结果变为空白

python - 如何让 celery 任务调用异步任务?

java - 获取位置安卓?

MongoDB 索引,是否可以同时创建普通索引和复合索引?

mysql - 如何添加索引,重用一些列?

python - Pandas :如何获取索引之间的行?

mysql - SQL-多次重复 1 列

mysql - Laravel SQLSTATE[22007] : Invalid datetime format: 1292 Incorrect datetime value: '2019-03-10 02:00:39' for column 'updated_at' (daylight savings?)

mysql - 如何mysql按日期分组多个左连接

mysql 随机化结果和优化