首页 > 数据库技术 > 详细

数据库全文索引相关问题

时间:2014-11-05 19:03:03      阅读:261      评论:0      收藏:0      [点我收藏+]

课程.NET/C#课程[4]:SQLServer基础应用开发从基础出发为你讲解数据表的相关使用方法,而索引在数据表中的是一项必要掌握的

 

如何将

selectipfromtabelxwhereiplike‘%192.168.0.1%‘

这种句子的性能优化。

的确,使用 like %x 的方式,数据库没办法使用索引,一定会进行整表扫描,所以我们需要避免这种方法。之前同事叫我尝试一下用 match() against 的方法。于是顺便试了试,

全文索引只支持MyISAM表

select*from`data`.`test`wherematch (ip) against(‘192‘)

这样搜索出来没有结果。google了一会儿,发现网上的例子都是搜索英文单词的,于是在ip里面混了点英文单词试了一下,有结果。

再google后发现,mysql默认对全文检索有单词的字符限制,即:

ft_max_word_len 84

ft_min_word_len 4

所以这里的ip没法搜索,因为用 . 分隔的会被当成是一个单词,ip只有3位。

于是把ft_min_word_len修改为1,重启服务,修复表,重建索引,搜索成功。

这里并不是支持这样搜索ip,ip搜索一般把IP地址存成 UNSIGNED INT,然后用转换函数进行搜索。

 

数据库全文索引相关问题

原文:http://www.cnblogs.com/yuguotianqing/p/4076689.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!