2012-10-27 18 views
0

我想要使用此查詢腳本來搜索一個MySQL數據庫 http://www.ar-php.org/Examples/ArQuery.php在一個大型數據庫中搜索與正則表達式文本

我只是搜索表中的一列..但每行大約有3000個字符在該列長文本..我只加入100行的權利,但它減緩已經..

如果我有一個百萬行這樣的,將這個腳本是不可用的?

我應該採取什麼樣的路線,以便能夠使用這個腳本,並與數以百萬計長文本行..

我的疑問是這樣的:

SELECT * FROM articles WHERE(REPLACE(文字, '', '')REGEXP「(ك|ك|ك|ك|ك|ك|ك|ك|ك|ك|ك|ك|ك|ك|ك)(ي|ي|ي|ي |ي|ي|ي|ي|ي|ي|ي|ي|ي|ي|ي)(ف|ف|ف|ف|ف|ف|ف|ف|ف|ف|ف|ف|ف| ف|ف)「)

SELECT * FROM articles WHERE(REPLACE(文字, '', '')REGEXP '地獄(O | O | O | O | O | O)')

+0

你在做什麼? – rekire

+0

該列有哪些字符集和排序規則?使用正確的[在選擇查詢期間],你不需要這個正則表達式。 – Prinzhorn

+0

我的默認是utf8_general_ci –

回答

1

@ali蓋達爾

我絕對建議使用Full Text指數和相關的MySql函數。正則表達式對於相對較小的文本而言是好的和有效的,但不適用於在數據庫內部進行搜索。全文索引專爲此目的而設計,並使用極其高效的數據結構來最大限度地減少磁盤I/O並在大數據內快速搜索。

希望這會有所幫助。

+0

謝謝你的建議,我考慮的全文搜索,但我怎樣才能使用正則表達式靈活性與它,我不知道..所以是一個大型數據庫與正則表達式查詢這樣的事情是不可能的? –

+0

雖然這些都不是一樣的regexs但你canexploit布爾模式運營的能力http://dev.mysql.com/doc/refman/5.5/en//fulltext-boolean.html – ioseb

相關問題