MySQL执行时间

el_*_*_le 1 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
Run Code Online (Sandbox Code Playgroud)

Fra*_*nes 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
Run Code Online (Sandbox Code Playgroud)

使用REGEXP或时NOT REGEXP,索引无关紧要.为了提高效率,如果仍然不够,您将不得不考虑使用其他字符串函数LIKE运算符.