使用LIKE%var%优化sql查询

时间:2016-07-25 10:17:09

标签: sql

查询在我的本地开发计算机上运行得很快,但在网络服务器上却没有。有没有想过优化这个查询?

SELECT * from mybigtable 
WHERE title LIKE %.'$var'.% AND lang='.$lang.' 
ORDER BY score DESC 
LIMIT 6;

2 个答案:

答案 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的自由文本搜索功能。