Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 删除带有4个where-like语句的查询非常慢_Mysql_Performance - Fatal编程技术网

Mysql 删除带有4个where-like语句的查询非常慢

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非常糟糕-问题是,我不知道如何做得更好 有什么想法吗?使用正则表达式(这也会考虑长度检查): 你试过

我有一个删除查询,大约有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非常糟糕-问题是,我不知道如何做得更好

有什么想法吗?

使用正则表达式(这也会考虑长度检查):


你试过了吗?您认为regrexp会更快吗?为什么这很重要?它可能是一次性操作?请提供
SHOW CREATE TABLE austan\u f。这张桌子有多大?可能有两张
DELETE FROM austan_f WHERE Bez REGEXP '(^FHK)|(XX|YY|ZZ)$|^(.{0,7}|.{9,})$';