查询在我的本地开发计算机上运行得很快,但在网络服务器上却没有。有没有想过优化这个查询?
SELECT * from mybigtable
WHERE title LIKE %.'$var'.% AND lang='.$lang.'
ORDER BY score DESC
LIMIT 6;
答案 0 :(得分:1)
您可以使用依赖于数据库的优化
MySQL>> ALTER TABLE articles ADD FULLTEXT(title);
MySQL>> SELECT * FROM articles WHERE MATCH(title) AGAINST ('TEXTVALUE')
MS-SQL>> SELECT ProductName FROM Products WHERE FREETEXT (ProductName, 'spread' )
PgSQL>> CREATE FUNCTION fti() RETURNS opaque AS '/path/to/fti.so' LANGUAGE 'C';
PgSQL>> CREATE TABLE articles_fti (string type, id oid);
Oracle >> CONTAINS function
答案 1 :(得分:0)
这样的查询无法利用大多数数据库引擎上的索引;你应该看看你的DB的自由文本搜索功能。