mysql regexp查询挂起,但在mysql进程重启时显示结果

时间:2013-12-30 01:29:41

标签: mysql sql regex left-join

我有两张桌子。表1是10密耳行,表2是1密耳行。我需要用regexp搜索Table2然后加入表。

当我这样做时:

SELECT * FROM table2
LEFT JOIN table1 
ON table1.ID1=table2.ID2 
WHERE table2.column REGEX 'regexp'

查询永远不会完成。

然而,当我杀死mysqld进程时,它会显示结果(在PHPMyAdmin中),显示的执行时间仅为0.07秒。

如果我使用LIKE而不是REGEXP,那么没有问题,如果我单独在table2上使用REGEX也没有问题。

ID1& ID2已编入索引。如果我解析了选择,它会显示使用的键。

任何想法,出了什么问题?

1 个答案:

答案 0 :(得分:0)

事实证明,整个问题是两个表中的ID字段属于不同的类型(mediumint与int)。一旦我将它们都更改为int,查询就很快。 由于引擎是MyISAM,我无法使用可能让我更快意识到问题的外键。