首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

SQL语句优化,该怎么解决

2013-11-08 
SQL语句优化各位 请问下 这个SQL怎么写啊select top 20 * from test where name like ? or info like ?而

SQL语句优化
各位 请问下 这个SQL怎么写啊
select top 20 * from test where name like ? or info like ?
而且问号个数是随用户输入的关键词个数变化的
比如用户输入 jack lisa
select top 20 * from test where name like '%jack%' or info like '%jack%' or name '%lisa%' or info like '%lisa%'
用户输入 三个关键词 就变成三组 name 和info

[解决办法]
加全文索引吧。
http://www.soft6.com/tech/16/163677.html
[解决办法]
楼主,like的核心问题是,如果你用 %xxoo% 就没法使用常规索引。

所以基本上只有两种套路:
1、Like仅适用 xxoo%,那么这样仍然可以使用常规索引;
2、使用全文索引,Oracle自身是支持的,安装配套的组件包就行了;不过索引空间会很大。
[解决办法]

探讨

楼主,like的核心问题是,如果你用 %xxoo% 就没法使用常规索引。

所以基本上只有两种套路:
1、Like仅适用 xxoo%,那么这样仍然可以使用常规索引;
2、使用全文索引,Oracle自身是支持的,安装配套的组件包就行了;不过索引空间会很大。

[解决办法]
探讨

引用:
SQLServer 的全文索引比Oracle容易使用多了,我2000年的时候用过就这么觉得,不过现在全忘了。

使用全文索引时 %XX% 和XX%有区别的吗

[解决办法]
探讨
使用全文索引时 %XX% 和XX%有区别的吗

[解决办法]
会加索引不?加上,就行了,可提高效率的
[解决办法]
非常喜欢全文索引;sql server用全文索引最简单;手动创建;so easy
[解决办法]
SQL Server 的全文检索,通配符似乎应该是 * 而不是 %
SELECT * FROM categories 
WHERE CONTAINS(description, '"sea*" or "bread*"') 

多关键字用另一个函数:
SELECT * FROM categories 
WHERE FREETEXT (Description, 'sweetest candy bread and dry meat' )

热点排行