0

当我运行 mysql select 语句时,它需要很长时间,因为我之前已经删除了大量的行。

表格有没有办法从底部开始扫描,而不是从顶部开始扫描?

4

2 回答 2

2

也许您的表需要一个额外的索引。偶尔发出 OPTIMIZE TABLE 和 ANALYZE TABLE 也没有什么坏处。只要您有合适的索引,查询性能不应该受到删除行的影响,即使是大量的行。

于 2010-05-18T14:51:27.793 回答
2

查询不会以任何特定顺序扫描表;如果它碰巧按顺序遍历特定索引(例如范围扫描),它可能会这样做,这可能是因为您使用了 ORDER BY。

数据库不能那样工作。你不能以这种方式依赖他们的行为。

如果您正在执行全表扫描,预计它需要一段时间,特别是如果您最近删除了很多行。但是,如果您有很多行,则需要更长的时间。

确保查询改用索引。查看解释计划并确保它使用索引。

于 2010-05-18T21:25:07.460 回答