网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

如何解决mysqlleftjoin查询不走索引的问题

本篇内容介绍了“如何解决MySQL left join 查询不走索引的问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

我们提供的服务有:成都网站建设、网站制作、微信公众号开发、网站优化、网站认证、龙井ssl等。为近1000家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的龙井网站制作公司

前言

本地有两张表 alarm闹钟表和alarm_order闹钟订单表
在alarm_order订单表中有alarm_id建立了索引,但是发现在left join查询的时候没有走索引查询,使用了全文搜索

如何解决mysql left join 查询不走索引的问题

问题分析

乍一看,sql语句似乎并没有问题

1、首先,来观察下两张表的字符类型是否相同

发现两张表的字符类型确实不一样,随后把表1改为utf8,再次查询发现依旧不起作用

2、最后发现可能是alarm_order表中的alarm_id的基数太小了,mysql判断全文搜索速度要快,则进行全文搜索。后来发现确实是这个问题

解决办法

mysql在一个表如果索引基数过小的情况下默认会走全文搜索,所以对于表业务量过大但是索引字段基本上为同一数据或null的情况 还是需要在sql中写死强制索引
在sql中使用强制索引解决办法 left join 后添加 force indes(alarm_id)
因为业务数据的关系,我这边alarm_id的基数确实就是很小,为了走索引查询,直接加上强制索引查询

如何解决mysql left join 查询不走索引的问题

再次测试,问题解决了!!~~

“如何解决mysql left join 查询不走索引的问题”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!


网站标题:如何解决mysqlleftjoin查询不走索引的问题
当前路径:http://bjjierui.cn/article/ijpgsp.html

其他资讯