当我运行mysql select语句时,它需要很长时间,因为我之前已经删除了很多行。
表格是否有办法从底部开始扫描,而不是从顶部开始扫描?
答案 0 :(得分:2)
也许你需要为你的表添加一个额外的索引。偶尔发布OPTIMIZE TABLE和ANALYZE TABLE也没什么坏处。如果您有合适的索引,则不应该通过删除行(即使是大量行)来影响查询性能。
答案 1 :(得分:2)
查询不会以任何特定顺序扫描表格;如果碰巧按顺序遍历特定索引(例如范围扫描),它可能会这样做,这可能是因为你使用了ORDER BY。
数据库就是这样不起作用的。你不能以这种方式依赖他们的行为。
如果您正在进行全表扫描,预计需要一段时间,特别是如果您最近删除了很多行。但是,如果你有很多行,它会花费更长的时间。
确保查询使用索引。查看解释计划并确保它使用索引。