Mysql 删除带有4个where-like语句的查询非常慢
我有一个删除查询,大约有300k个数据行:Mysql 删除带有4个where-like语句的查询非常慢,mysql,performance,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 like非常糟糕-问题是,我不知道如何做得更好 有什么想法吗?使用正则表达式(这也会考虑长度检查): 你试过
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 like非常糟糕-问题是,我不知道如何做得更好
有什么想法吗?使用正则表达式(这也会考虑长度检查):
你试过了吗?您认为regrexp会更快吗?为什么这很重要?它可能是一次性操作?请提供
SHOW CREATE TABLE austan\u f代码>。这张桌子有多大?可能有两张
DELETE FROM austan_f WHERE Bez REGEXP '(^FHK)|(XX|YY|ZZ)$|^(.{0,7}|.{9,})$';