Mysql的几种搜索FullText、Instr、Like
来源:互联网 发布:淘宝助理没有销售属性 编辑:程序博客网 时间:2024/05/22 15:56
使用全文搜索,要把数据库引擎设置为myisam,该引擎不支持事务处理,设置完还要把要搜索的列设置fulltext索引,效率上全文搜索据说最高,是在数据量达到几百万的时候,但是全文搜索使用模糊查询效率又很低,还不如like,且全文搜索不支持中文;
instr(title,'name')=1 相当于 title like 'name%'
instr(title,'name')=0 相当于 title not like '%name%'
instr效率比like要好,我测的结果是instr效率在数据量三百万的时候比like稍微快几十毫秒,如果对搜索的列创建index,那么instr和like的效率都提高两倍还多,所以还是建索引效果明显;
综上,当使用模糊查询时,第一要建索引;第二,用instr替换like。
instr(str1,str2)
有两种用法:一种是前面参数写变量,后面写列名;还有就是位置调换。两种有不同的效果,instr(str1,str2)的意思是str2在str1中,如果后面写变量前面写列名,则表示搜出表中所有str1列中值包含str2变量的数据,这时候跟(列名 like '目标表里')的效果是一样的;
instr还有一个需要注意的地方,就是对该函数返回结果值的判断,不写时默认是判断 "> 0";共有三种可能,每种对应情况如下:
----------------------
instr(title,'name')>0 相当于 title like '%name%'
instr(title,'name')=1 相当于 title like 'name%'
instr(title,'name')=0 相当于 title not like '%name%'
0 0
- Mysql的几种搜索FullText、Instr、Like
- Mysql 使用instr代替like
- Mysql 使用instr代替like
- paip.mysql fulltext 全文搜索.最佳实践.
- Mysql函数INSTR、LOCATE、POSITION VS LIKE
- Mysql函数INSTR、LOCATE、POSITION VS LIKE
- mysql中使用instr替换like
- Mysql函数INSTR、LOCATE、POSITION VS LIKE
- Mysql函数INSTR、LOCATE、POSITION VS LIKE
- Mysql函数INSTR、LOCATE、POSITION VS LIKE
- MySQL模糊查询使用INSTR替代LIKE
- Mysql函数INSTR、LOCATE、POSITION VS LIKE
- instr like
- 做搜索的时候尽可能避免使用like % 应该用instr
- MYSQL的FULLTEXT索引功能
- oracle like 和instr的效率差别
- instr和like的效率(oracle)
- 关于Oracle的instr和like
- C++ C# VC VC.net以及VC++有…
- 1-100自然数 找出缺少的数(…
- 循环与递归的区别
- 网页过渡效果(meta http-equiv=Page-Enter)
- 手把手教MFC贪吃蛇
- Mysql的几种搜索FullText、Instr、Like
- linux字符界面下贪吃蛇游戏…
- Qt之系统托盘(QSystemTrayI…
- Django安装
- How to check if a static library is built for 64-bit?
- 李力刚《谈判博弈》读书笔记
- new Foo 和 new Foo()的区别以及Foo f2()的问题
- javascript 算法
- LeetCode Word Search