MySQL执行时间

时间:2011-06-28 02:00:59

标签: mysql sql

我需要一些帮助来减少此查询的执行时间。对于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

2 个答案:

答案 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

使用REGEXPNOT REGEXP时,索引无关紧要。为了提高效率,如果仍然不够,则需要查看使用其他string functionsLIKE运算符。

答案 1 :(得分:2)

两件快事:

  • 确保已将parent列编入索引。
  • 删除正则表达式。如果可以,请使用LIKE或其他string function