我在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