删除4个类似于where语句的查询非常慢

时间:2015-05-27 07:04:48

标签: mysql performance

我有一个删除查询,大约300k数据行:

DELETE FROM austan_f 
WHERE (Bez LIKE '%XX' OR 
       Bez LIKE '%YY' OR 
       Bez LIKE '%ZZ' OR 
       Bez LIKE 'FHK%' OR 
       length(Bez) != 8)

它需要大约30分钟 - “为什么”不是问题:4x像坏一样 - 问题是,我不知道如何做得更好。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

使用正则表达式(这也将负责长度检查):

DELETE FROM austan_f WHERE Bez REGEXP '(^FHK)|(XX|YY|ZZ)$|^(.{0,7}|.{9,})$';