对于sql查询,在我的理解就是增删改查,还能干啥?
简单的模糊查询是,select * from table where number like '%张三%'
为了使查询更加快捷,我一般不会使用* ,一般都是使用的字段,select id,name,number from table where number like '%张三%'
但是这样的查询对于一般查询完全OK,但是当遇到另外一种情况
文章列表.检索文章内容的时候,我就发现了问题,慢,龟速,比龟速还慢.因为like的性能比较不给力.这个时候,我就会找新的解决方案
create unique clustered index index_ID on table(id)
----创建全文目录*/
create FULLTEXT CATALOG FT AS DEFAULT
----创建全文索引*/
create FULLTEXT INDEX ON table(content) key index index_ID ON FT
创建索引无非是一个办法,是一个解决方案,索引创建OK,再就是查询,如果你此时用like查询,还是相对较慢.
查询语法得改进.CONTAINS (包含)
如果包含关键字就显示
SELECT *
from dbo.table
WHERE CONTAINS (content,
'测试');
1300+的完整的文章,查询速度大约在100毫秒到3秒之间.文章内容完整丰富的情况下
如果用 like 查询,同一台数据库的数据要在30秒以上的时间.快的速度不是一点半点
但是like的优点就是准确,精准. contains就是快,但是精准谈不上
那么综合以上描述,从用户体验来考虑,当你的数据加载很慢 慢的超过了用户的耐心,用户也许就会放弃你的网站
但是如果速度很快,虽然不是特别的精准,但是大致内容没有太多的变化,用户也会
contains 查询 测试1 会搜索出 '测试'的结果
like 查询 测试1 只显示'测试1'结果
本篇文章,只是给自己的成长道路上留下一个脚印,
参考 : http://bbs.csdn.net/topics/391829329?page=1#post-400382554
检测数据库
select databaseproperty('table','isfulltextenabled')
修改数据库属性
EXEC sp_fulltext_database 'enable'