我需要一些帮助来减少此查询的执行时间。对于1500行的表格,7秒似乎太长了。
SELECT parent
FROM video
WHERE parent NOT IN (SELECT parent
FROM video
WHERE filename REGEXP '(s[0-9]{2}\e[0-9]{2})|([[:<:]][0-9]{3}[[:>:]])')
GROUP BY parent
答案 0 :(得分:5)
首先,您可以使用NOT REGEXP
代替子查询。
SELECT parent
FROM video
WHERE filename NOT REGEXP '(s[0-9]{2}\e[0-9]{2})|([[:<:]][0-9]{3}[[:>:]])'
GROUP BY parent
使用REGEXP
或NOT REGEXP
时,索引无关紧要。为了提高效率,如果仍然不够,则需要查看使用其他string functions或LIKE
运算符。
答案 1 :(得分:2)
两件快事:
parent
列编入索引。LIKE
或其他string function。