我在wordpress中製作一個插件,它查看所有文件以查看文件是否被使用。 問題是,當我得到所有文件並對它們中的每一個進行查詢時,都會有很多查詢。成千上萬的SELECT語句在大型文本字段中使用LIKE搜索 - 如何提高性能?
例如3000的SQL語句是這樣的:
SELECT COUNT(*) FROM " . $table_prefix . "posts
WHERE post_content LIKE '%/$fileName%';
而真正的問題是,如果讓大量的SQL查詢的服務器會下降,所以這個問題是我如何可以查詢3000個文件,而無需犧牲服務器。
例如使一個掃描在一個目錄,我發現
A.JPG
B.JPG
C.JPG
D.JPG
......
.. ....
z.jpg
所以知道的唯一方式,如果他們中的每一個都是用我以前寫的查詢,所以我有一些像這樣的
SELECT COUNT(*) FROM " . $table_prefix . "posts
WHERE post_content LIKE 'a.jpg';
SELECT COUNT(*) FROM " . $table_prefix . "posts
WHERE post_content LIKE 'b.jpg';
....
SELECT COUNT(*) FROM " . $table_prefix . "posts
WHERE post_content LIKE 'z.jpg';
,我使用此查詢,因爲如果該文件是在任何崗位refered,如果計數爲0,則表示該文件未使用
所以對於誰問什麼是人我搜索問題是我如何使所有查詢沒有問題,或者我如何更改查詢以更好地搜索每個文件
如何對性能那個查詢?它看起來可能是昂貴的... – 2012-03-20 15:13:43
我明白你的想法,但具體是什麼問題? – 2012-03-20 15:21:54
看起來像要使用全文搜索: http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html – Daan 2012-03-20 15:22:58