博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql FullText全文索引的问题
阅读量:7087 次
发布时间:2019-06-28

本文共 569 字,大约阅读时间需要 1 分钟。

今天有同学问题,搜索ip的时候怎样能把 

select ip from tabelx where ip like '%192.168.0.1%'

这种句子的性能优化。

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

——前提:全文索引只支持MyISAM表

select * from `data`.`test` where match (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,重启mysqld服务,修复表,重建索引,搜索成功。

 

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


 

下面是关于全文检索的一些介绍:

---to be continue

转载地址:http://dogml.baihongyu.com/

你可能感兴趣的文章
python win32api 使用小技巧
查看>>
tableWidget单元格的大小调整
查看>>
Linux平台gcc和动态共享库的基础知识
查看>>
Compilify——让你在浏览器中编译.NET代码
查看>>
【原】JavaScript中Date对象的getYear()和getFullYear()的区别
查看>>
j2ee程序员应该掌握的linux知识(转)
查看>>
Android_文档学习_UI_creating menus
查看>>
Hibernate问题之'hibernate.dialect' not set
查看>>
8月8日小记
查看>>
u-boot中环境变量的实现
查看>>
Android开发之Button事件实现方法的总结
查看>>
Squid调试和故障处理
查看>>
MIME protocol 说明
查看>>
Google LOGO现代舞舞蹈动画
查看>>
<context:component-scan>配置解析(转)
查看>>
poj 2041 Unreliable Message 字符串处理
查看>>
有人3见解
查看>>
[python]decimal常用操作和需要注意的地方
查看>>
Ubuntu 网卡信息2
查看>>
android 没有main函数,怎么找到程序执行入口呢?以及activity主要生命周期的方法说明...
查看>>