在大型数据库中使用正则表达式搜索文本

时间:2012-10-27 18:51:01

标签: mysql regex text

我正在尝试使用此查询脚本来搜索mysql数据库 http://www.ar-php.org/Examples/ArQuery.php

我只搜索表中的一列..但是每一行在该列中有大约3000个字符长的文本..我现在只添加了100行,但它已经放慢了..

如果我有这样的一百万行,这个脚本会无法使用吗?

我应该采取什么样的路线才能使用这个脚本并拥有数百万行长文本..

我的查询如下:

SELECT * FROM articles WHERE(REPLACE(text,'','')REGEXP'(ك|ك|ك|ك|ك|ك|ك|ك|ك|ك|ك|ك |ك|ك|ك)(ي|ي|ي|ي|ي|ي|ي|ي|ي|ي|ي|ي|ي|ي|ي)(ف|ف|ف|ف|ف|ف |ف|ف|ف|ف|ف|ف|ف|ف|ف)')

SELECT * FROM articles WHERE(REPLACE(text,'','')REGEXP'hell(ö| o |ô|Ö| O |Ô)')

1 个答案:

答案 0 :(得分:1)

@ali haydar

我绝对建议使用Full Text索引和相关的MySql函数。正则表达式对于相对较小的文本而言是好的和有效的,但不适用于在数据库内搜索。全文索引是为此目的而设计的,它使用极其高效的数据结构来最小化磁盘I / O并在大数据内快速搜索。

希望这有帮助。