Mysql模糊查询 like 语句及其性能调优

MySQL相关面试题总结 1、解释一下单列索引和联合索引 单列索引是指在表的某一列上创建索引,联合索引是在多个列上联合创建索引。单列索引可以出现在where条件的任何位置,而联合索引需要按照一定的顺序来写。在多条件查询的时候,联合索引的效率更高,我们联合索引也最多创建两列。 我们创建索引的时候也得考虑到我们这张表的更新频率,如果表里索引比较多的话是比较影响更新速度的,因为创建索引的过程其实就是构建一个二叉树,而每次更新完数据都得重新计算二叉树,所以就影响更新速度。 索引并不是时时都会生效的,比如以下几种情况就能导致索引失效: 如果 阅读详情

在使用msyql进行模糊查询的时候,很自然的会用到like语句,通常情况下,在数据量小的时候,不容易看出查询的效率,但在数据量达到百万级,千万级的时候,查询的效率就很容易显现出来。这个时候查询的效率就显得很重要!

一般情况下like模糊查询的写法为(field已建立索引):

SELECT column FROM table WHERE field like ‘%keyword%’;

上面的语句用explain解释来看,SQL语句并未用到索引,而且是全表搜索,如果在数据量超大的时候,可想而知最后的效率会是这样

对比下面的写法:

SELECT column FROM table WHERE field like ‘keyword%’;

这样的写法用explain解释看到,SQL语句使用了索引,搜索的效率大大的提高了!

但是有的时候,我们在做模糊查询的时候,并非要想查询的关键词都在开头,所以如果不是特别的要求,"keywork%"并不合适所有的模糊查询

这个时候,我们可以考虑用其他的方法

1.LOCATE(‘substr’,str,pos)方法

SELECT LOCATE(‘xbar’,foobar); ###返回0
SELECT LOCATE(‘bar’,foobarbar); ###返回4
SELECT LOCATE(‘bar’,foobarbar,5);###返回7

备注:返回 substr 在 str 中第一次出现的位置,如果 substr 在 str 中不存在,返回值为 0 。如果pos存在,返回 substr 在 str 第pos个位置后第一次出现的位置,如果 substr 在 str 中不存在,返回值为0。

SELECT column FROM table WHERE LOCATE(‘keyword’, field)>0

备注:keyword是要搜索的内容,field为被匹配的字段,查询出所有存在keyword的数据

2.POSITION(‘substr’ IN field)方法

position可以看做是locate的别名,功能跟locate一样

SELECT column FROM table WHERE POSITION(‘keyword’ IN filed)

3.INSTR(str,‘substr’)方法

SELECT column FROM table WHERE INSTR(field, ‘keyword’ )>0

除了上述的方法外,还有一个函数FIND_IN_SET

FIND_IN_SET(str1,str2):

返回str2中str1所在的位置索引,其中str2必须以","分割开。

SELECT * FROM person WHERE FIND_IN_SET(‘apply’,name);


转载自 https://www.cnblogs.com/chaobest/p/6737901.html

Mysql中FIND_IN_SET()和IN区别简析 主要介绍了Mysql中FIND_IN_SET()和IN区别简析,设计实例代码,具有一定参考价值。需要的朋友可以了解。 立即下载

相关推荐

自动驾驶仿真:python和carsim联合仿真案例

carsim内部有许多相关联合仿真的demo,simulink、labview等等都有涉及,这里简单介绍下python和carsim联合仿真的方法,虽然carsim官方有个Steer_Control.py相关的案例,但是感觉比较冗余,这里抽出重点部分和大家交流探讨下。提示:以下是本篇文章正文内容,下面案例可供参考1、这里关于solvers的细节其实都没说,因为里面确实也没什么内容好讲的,本质就是调用carsim.dll,如果你需要更多的函数解析其实可以看vs_api.h,路径在,具体内容如下图所示。

zataji的博客 9062

Mysql模糊查询like效率,以及更高效的写法

在使用msyql进行模糊查询的时候,很自然的会用到like语句,通常情况下,在数据量小的时候,不容易看出查询的效率,但在数据量达到百万级,千万级的时候,查询的效率就很容易显现出来。这个时候查询的效率就显得很重要! 一般情况下like模糊查询的写法为(field已建立索引): SELECT `column` FROM `table` WHERE `field` like '%...

weixin_30339969的博客 5708

ROS2进程内通信:零拷贝Intra-Process原理与实战

Intra-Process通信是ROS2实现低延迟节点间数据交换的核心机制,其本质是通过C++17智能指针与零拷贝共享内存,在同一进程内绕过序列化、系统调用和上下文切换。相比传统DDS跨进程通信,它将`geometry_msgs::Twist`类消息延迟从42μs降至0.8μs,显著提升机器人实时控制性能。该技术并非自动启用,需满足同执行器、QoS严格匹配、内存所有权明确三大约束,适用于机械臂控制、视觉SLAM、图像处理流水线等对端到端延迟敏感的场景。本文聚焦ROS2原生Intra-Process通讯的原理

weixin_30619101的博客 364

B+Tree 索引

B+TREE索引 B+树的结构 如图所示,在B+树种,非叶结点都包含一个范围,叶子结点具有非常特殊的特性: 每个叶子结点都指向下一个叶子结点,这是一个链表的形式。 所以,B+树实际上是树结构和链表结构的结合。 ① 这就是排序对索引有效的原因。 ② B+树的高度是由数据量决定的。 B-Tree索引 B-TREE索引适用于全键值、键值范围或键前缀查找,其中键前缀查找只适用于根据最左前缀的查找。 1. 索引生效的情况: a) 匹配最左前缀;【索引匹配原则】:最左匹配原则 b) 全值匹配; c) 匹配列前

Cambridge26的博客 704

Cesium WebGL性能调优实战:从卡顿根源到流畅渲染

本文深入探讨Cesium WebGL性能调优的实战技巧,从硬件配置、框架适配到3D Tiles加载策略,全面解决卡顿问题。通过强制启用独立显卡、优化浏览器设置、避免Vue内存陷阱等实用方法,显著提升3D地图应用的流畅度。文章还分享了高级调试工具和实战避坑经验,帮助开发者实现高效渲染。

weixin_27215337的博客 421

六自由度机器人(机械臂)运动学建模及运动规划系列(四)——轨迹规划

本篇介绍了六轴机器人关节空间以及笛卡尔空间轨迹规划的简单方法,并给出了一种几何解法,以简化规划过程,并提供了简单的Matlab轨迹规划函数介绍。

weixin_47849087的博客 5万+

Mysql中的in和find_in_set的区别?

在mysql中in的使用情况如下(in里面放的是常量): select * from article where 列名 in(值1,值2,值3…); select * from article where 值1 in(值1,值2,值3…);在mysql中find_in_set的使用情况如下(find_in_set可以放常量也可以放变量): select * from article where find_in_set(值1, ‘值1,值2,值3…’); select * from article where

weixin_62322136的博客 3263

从零构建工业级SPI-CAN网关:CH347与CH9431的软硬件协同设计实战

本文详细介绍了基于CH347和CH9431芯片构建工业级SPI-CAN网关的完整方案。通过硬件架构设计、Linux驱动定制、并发处理优化和EMC抗干扰测试,实现高可靠性通信网关,适用于工业自动化和汽车电子等严苛环境。

spark7igniter的博客 632

MySQL 模糊查询:MySQL 数据库 like 语句通配符模糊查询小结

今天在使用 MySQL 语句执行增删改查操作时,控制台报出了以下错误:Parameter index out of range (1 > number of parameters, which is 0)。翻译过来意思就是:查到结果数据为 1,真实值应为 0,参数越界,产生错误。如此也就明确了我们具体出错的地方——参数,即对于通配符"?"的处理。本文分别对执行普通 SQL 语句以及使用 like 语句进行通配符模糊查询遇到本错误进行了剖析,并给出解决方案。

白鹿第一帅的 优快云 博客 8735

从牛顿冷却定律到热传导方程:一维热传导方程的物理直觉与数学推导

本文从牛顿冷却定律出发,结合傅里叶热传导定律和能量守恒原理,系统推导了一维热传导方程的数学形式。通过微元分析和物理直觉,揭示了温度随时间变化与空间二阶导数之间的关系,并阐释了热扩散率α的物理意义。文章还探讨了方程的边界条件、数值解法及其在材料科学和工程中的应用,为理解热量传递提供了清晰的物理图像和数学框架。

palm99的专栏 839

基于ROS的机械臂手眼标定-Aruco使用与相机标定

基于ROS的机械臂手眼标定-Aruco使用与相机标定 折腾了一段时间的机械臂的手眼标定,相关资料挺多的,但使用起来都比较复杂,新手一般比较难搞懂。于是想做一个比较简单易懂易用的手眼标定程序。 程序都是Copy的开源代码,所以也开源出来: 开源地址:https://gitee.com/ohhuo/handeye-calib 作为手眼标定中的重要一环,相机中标定板位姿关系获取直接影响标定精度,我们使用aruco这个开源程序来实现坐标的获取。 #mermaid-svg-WkFpFkV4QqzXMvJ4 .labe

生活不止眼前的苟且 1万+

MySQL LIKE 子句:高效模糊查询全攻略

MySQL LIKE子句模糊查询全攻略:从基础到高效优化 本文全面解析MySQL LIKE子句的模糊查询技术,涵盖基础语法、通配符使用(%和_)、大小写敏感控制、转义字符处理等核心功能。

✨ 欢迎来到【Seal ^_^ 的优快云博客】!✨ 1万+

数分实战(01):Global_Superstore数据集解析与商业洞察

本文以Global_Superstore零售数据集为例,手把手指导数据分析实战全流程。从数据清洗、探索性分析到深度商业洞察,详细解析了如何通过Python处理缺失值与异常值,进行销售利润分析、客户细分与地理分析,并探讨了折扣与利润的微妙关系。文章旨在帮助读者建立数据分析思维框架,从数据中挖掘可指导实际业务决策的核心洞察。

weixin_28487433的博客 343

MySQL性能调优

注意事项1. 避免过度优化:优先解决性能瓶颈最严重的部分。2. 基准测试:使用sysbench或自定义脚本验证调优效果。3. 灰度发布:生产环境调整配置时逐步验证。通过以上策略,可系统性提升MySQL性能,支撑高并发、大数据量场景。实际调优需结合业务特点,持续监控与迭代。

guanxin0206的博客 4023

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

MySQL - 如何优化模糊查询(like 模糊查询)

在MySQL中,模糊查询肯定要使用like关键字,然后在加 %%,是代表前模糊还是后模糊。数据量小的情况下,不容易看出查询的效率,但是数据量达到百万级,千万级甚至更高的时候,查询的效率就很容易显现出来了,此时,查询效率就显得很重要了,接下来,就要看你如何优化了。 前面讲过 MySQL - 如何提高SQL的查询效率(where条件优化) 全局检索 建立索引的情况下 一般情况下like模...

Soinice的博客 2万+

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

MySQL基础之LIKE模糊查询

在MySQL中,LIKE关键字主要用于搜索匹配字段中的指定内容

我是聂可的博客 1万+

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

MySql like模糊查询语句用法

MySql like模糊查询语句用法

weixin_45761237的博客 1万+

MySQL性能调优与深度分页优化策略

在现代的Web应用和大数据环境中,MySQL作为一款广泛使用的开源关系数据库管理系统,其性能直接影响着应用程序的响应时间和用户体验。尤其是在面对海量数据的深度分页查询时,性能问题尤为突出。本文旨在探讨MySQL的性能调优策略以及深度分页查询的优化方法。MySQL性能调优是一个复杂的过程,涉及到数据库配置、查询优化、系统资源管理等多个方面。而深度分页查询的优化则需要结合具体的应用场景和数据特性,采用灵活的策略来实现高效的数据检索。通过上述的优化措施,可以显著提升MySQL在高并发和大数据环境下的表现。

小码农的博客 3857

MySQL Like模糊查询速度太慢如何进行优化

MySQL Like模糊查询速度太慢如何解决

程序员小王的博客 1万+

mysql模糊查询like

# mysql模糊查询like ### 1:%:表示任意0个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示。 ### 比如:SELECT * FROM [user] WHERE u_name LIKE '%三%' ### 将会把u_name为“张三”,“张猫三”、“三脚猫”,“唐三藏”等等有“三”的记录全找出来。 ### 另外,如果需要找出u_name中既有“三”又有“猫”的记录,请使用and条件 ### SELECT * FROM [user] WHERE u_

sinat_15946141的博客 6532

MySQL 中 LIKE 模糊查询如何优化?

在 MySQL 中,使用 LIKE 关键字进行模糊查询是非常常见的操作。然而,模糊查询往往性能较差,尤其是在大型数据库中,可能导致查询速度变慢,影响系统的整体性能。那么,有哪些方法可以优化 LIKE 模糊查询呢?本文将通俗易懂地介绍几种优化策略。优化 MySQL 中的 LIKE 模糊查询需要综合考虑多种因素,包括查询方式、索引使用、缓存机制、表设计等。通过合理的优化策略,可以显著提高查询性能,提升系统的整体效率,根据具体的应用场景选择合适的优化策略,才能真正发挥数据库的性能。

乐闻世界 2821

MySQL索引系列--索引的优化--LIKE模糊查询

本文介绍MySQL的LIKE模糊查询索引的优化。主要是索引失效的解决方案。

IT利刃出鞘的博客 9806

MySQL中like模糊查询如何优化?

MySQL中like模糊查询如何优化?

java1234的博客 1079

MySQL模糊查询你只知道LIKE就OUT了

Mysql模糊查询除了LIKE还可以使用其他的三种方式。

qq_45515182的博客 7222

索引下推破解模糊查询困局:让LIKE操作性能飙升的终极方案

 当你的模糊查询还在全表扫描中挣扎时,有人已用索引下推技术让查询速度提升20倍!本文通过真实电商场景案例,拆解MySQL索引下推(ICP)的底层原理与实战应用,配合EXPLAIN执行计划对比与百万级数据验证,助你掌握模糊查询优化的核心密码!

Start_mswin的博客 1021

mysql like的用法_mysql语句中like用法是什么

mysql语句中like用法:1、搭配【%】使用,【%】代表一个或多个字符的通配符;2、搭配【_】使用,【_】代表仅仅一个字符的通配符。mysql语句中like用法:1、常见用法:(1)搭配%使用%代表一个或多个字符的通配符,譬如查询字段name中以大开头的数据:(2)搭配_使用_代表仅仅一个字符的通配符,把上面那条查询语句中的%改为_,会发现只能查询出一条数据。2、使用like模糊查询会导致索引...

weixin_32705179的博客 7万+
上一篇: Java中CAS
下一篇: Java单例模式的三种线程安全版本
孤独考拉
博客等级 码龄12年 10粉丝 11原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值