mysql对于模糊查询like的一些汇总


Posted in MySQL onMay 09, 2021

1、常见用法:

(1)搭配%使用

%代表一个或多个字符的通配符,譬如查询字段name中以大开头的数据:

mysql对于模糊查询like的一些汇总

(2)搭配_使用

_代表仅仅一个字符的通配符,把上面那条查询语句中的%改为_,会发现只能查询出下面一条数据:

mysql对于模糊查询like的一些汇总

2、使用like模糊查询会导致索引失效,在数据量大的时候会有性能问题

(1)尽量少以%或者_开头进行模糊查询

通过explain执行计划,我们发现,使用like模糊查询时,如果不以%和_开头查询的话,索引还是有效的

mysql对于模糊查询like的一些汇总

mysql对于模糊查询like的一些汇总

以%或者_开头查询,索引失效

mysql对于模糊查询like的一些汇总

mysql对于模糊查询like的一些汇总

(2)使用覆盖索引

当查询的的条件和查询的结果都是索引中的字段的时候,这个索引我们可以称之为覆盖索引,这个时候,使用like模糊查询索引是有效的

mysql对于模糊查询like的一些汇总

mysql对于模糊查询like的一些汇总

InnoDB中主键可以不添加进索引中

注意:使用覆盖索引,对于字段的长度是由要求限制的,一般超过长度,索引也会失效

这里如果我查询中带有descripition字段,则覆盖索引也会失效(我这里的数据库经过测试最多只支持255长度的字段)

mysql对于模糊查询like的一些汇总

mysql对于模糊查询like的一些汇总

mysql对于模糊查询like的一些汇总

(3)使用全文索引

给字段建立Full Text索引,然后使用match(...) against(...)进行检索

mysql对于模糊查询like的一些汇总

mysql对于模糊查询like的一些汇总

注意:这种全文索引方式只对英文单词起作用,对于中文汉字支持不够友好,需要额外去mysql的配置文件做一些配置修改,让它额外支持中文

(4)使用一些额外的全文搜索引擎来解决

Lucene,solr,elasticsearch等等

基本原理是:把mysql配置文件中的ft_min_word_len=3改为1。(没有这项就直接添加),然后新建一个字段来保持分词结果,给这个字段建立全文索引。然后实现一个分词模块,把词语“大家好”拆分为“大 大家 大家好 家 家好 好”。然后用match .. against 来代替like %%,查询出来的结果跟like的结果基本相同(如果分词合理的话),但是效率比like高至少10倍以上。

总结

到此这篇关于mysql对于模糊查询like的文章就介绍到这了,更多相关mysql模糊查询like内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

MySQL 相关文章推荐
Navicat连接MySQL错误描述分析
Jun 02 MySQL
MySQL高速缓存启动方法及参数详解(query_cache_size)
Jul 01 MySQL
MySQL分库分表详情
Sep 25 MySQL
MySQL数据库如何给表设置约束详解
Mar 13 MySQL
mysql中数据库覆盖导入的几种方式总结
Mar 25 MySQL
你真的会用Mysql的explain吗
Mar 31 MySQL
Mysql多层子查询示例代码(收藏夹案例)
Mar 31 MySQL
使用Mysql计算地址的经纬度距离和实时位置信息
Apr 29 MySQL
MySQL8.0 Undo Tablespace管理详解
Jun 16 MySQL
MySQL数据库实验之 触发器和存储过程
Jun 21 MySQL
Mysql中的触发器定义及语法介绍
Jun 25 MySQL
MySQL 原理与优化之原数据锁的应用
Aug 14 MySQL
MySQL Threads_running飙升与慢查询的相关问题解决
MySQL sql_mode的使用详解
May 08 #MySQL
MySQL 数据丢失排查案例
May 08 #MySQL
MySQL update set 和 and的区别
May 08 #MySQL
MySQL查询学习之基础查询操作
May 08 #MySQL
MySQL sql_mode修改不生效的原因及解决
May 07 #MySQL
一篇文章弄懂MySQL查询语句的执行过程
You might like
10个实用的PHP代码片段
2011/09/02 PHP
PHP 数组和字符串互相转换实现方法
2013/03/26 PHP
体育彩票排列三组选三算法分享
2014/03/07 PHP
php rmdir使用递归函数删除非空目录实例详解
2016/10/20 PHP
JavaScript中几种常见排序算法小结
2011/02/22 Javascript
用jQuery获取IE9下拉框默认值问题探讨
2013/07/22 Javascript
jquery中html、val与text三者属性取值的联系与区别介绍
2013/12/29 Javascript
纯JS实现本地图片预览的方法
2015/07/31 Javascript
基于JS实现数字+字母+中文的混合排序方法
2016/06/06 Javascript
jquery.serialize() 函数语法及简单实例
2016/07/08 Javascript
jQuery层次选择器用法示例
2016/09/09 Javascript
AngularJS中的按需加载ocLazyLoad示例
2017/01/11 Javascript
微信小程序 页面传值详解
2017/03/10 Javascript
将input框中输入内容显示在相应的div中【三种方法可选】
2017/05/08 Javascript
jQuery实现简单日期格式化功能示例
2017/09/19 jQuery
npm 更改默认全局路径以及国内镜像的方法
2018/05/16 Javascript
vue项目搭建以及全家桶的使用详细教程(小结)
2018/12/19 Javascript
javascript中floor使用方法总结
2019/02/02 Javascript
Antd中单个DatePicker限定时间输入范围操作
2020/10/29 Javascript
python下paramiko模块实现ssh连接登录Linux服务器
2015/06/03 Python
Python导出DBF文件到Excel的方法
2015/07/25 Python
Python找出list中最常出现元素的方法
2016/06/14 Python
教你用一行Python代码实现并行任务(附代码)
2018/02/02 Python
Python生成验证码、计算具体日期是一年中的第几天实例代码详解
2019/10/16 Python
Python实现从N个数中找到最大的K个数
2020/04/02 Python
python3 中时间戳、时间、日期的转换和加减操作
2020/07/14 Python
英国家庭和商业健身器材购物网站:Fitness Options
2018/07/05 全球购物
香港最新科技与优质家居产品购物网站:J SELECT
2018/08/21 全球购物
美国床垫连锁店:Mattress Firm
2021/02/13 全球购物
巴西购物网站:Onofre Agora
2020/06/08 全球购物
副总经理工作职责
2013/11/28 职场文书
儿园租房协议书范本
2014/12/02 职场文书
涨价通知怎么写
2015/04/23 职场文书
党员转正党支部意见
2015/06/02 职场文书
三八妇女节致辞
2015/07/31 职场文书
Windows11里微软已经将驱动程序安装位置A盘删除
2021/11/21 数码科技