似乎是一个小问题,但我感到困惑。
我有一张约有25列的桌子。该表在任何时间点将包含> 100k行。 我想在循环中连续运行以下查询。
SELECT recordfile
FROM MYTABLE
WHERE duration = '0'
AND attempt < max_attempt
AND thread =1
ORDER BY id ASC
查询似乎花费了太多时间(平均0.0150秒)。如何设置适当的索引或任何其他方法,以使查询达到最佳的快速?
答案 0 :(得分:1)
表中的attempt
和max_attempt
都是这两列吗?我以为是。
处理程序是否会更改其中一些列?
添加此内容:
INDEX(thread, duration, -- in either order
id)
一次获取100行,而不仅仅是一行。然后,在处理它们时,请仔细检查可能已更改的列。 “抓取”会慢一些(但不会是100倍);测试可能会快很多。确保为那个测试设计一个最佳索引。