当前位置: 首页 > news >正文

记一次left join联表查询的索引失效场景

结论:关联表的列的字符集不一致导致的

场景:user_t(用户表)、org_t(机构表),user_t的org_id和org_t的id是一对一关系
1.explain发现org_t表未走索引,但是org_t的id字段默认存在主键索引,所以肯定不是未建索引导致的

explain select t1.account,t2.name from user_t t1
left join org_t t2
on t1.org_id = t2.id
where t1.sex = '0';

explain执行结果图
2.查看org_t.id的字符集和排序规则为utf8 utf8_general_ci

show full columns from org_t;

org_t字符集查询结果
3.查看user_t.org_id的字符集和排序规则为utf8mb4 utf8mb4_general_ci

show full columns from user_t;

user_t字符集查询结果
4.把user_t.org_id的字符集和排序规则调整为utf8 utf8_general_ci

alter table user_t modify column org_id varchar(20) 
character set utf8 collate utf8_general_ci default null comment '机构ID';

5.再次执行explain,发现org_t表走了索引,效率大大提升

explain select t1.account,t2.name from user_t t1
left join org_t t2
on t1.org_id = t2.id
where t1.sex = '0';

explain执行结果图

http://www.lryc.cn/news/464235.html

相关文章:

  • 从零到一:前端开发者学习 Cocos Creator 的全攻略
  • JavaWeb 19 AJAX
  • element plus中menu菜单技巧
  • 数据结构-贪心算法笔记
  • 基于SpringBoot的在线汽车票预订平台
  • ubuntu 安装nginx
  • fanuc远程PNS启动
  • 使用 Spring 框架构建 MVC 应用程序:初学者教程
  • 集成Spring Security详解
  • Kettle9.4支持Clickhouse数据源插件开发以及性能测试
  • 微信支付V3 yansongda/pay 踩坑记录
  • AndroidStudio实验报告——实验一、二
  • Nginx超简洁知识:负载均衡-反向代理,动静分离,配置文件
  • 云手机:社交平台运营的热门工具
  • iptables限速规则
  • 易泊车牌识别:海外车牌快速定制,开启智能识别新时代
  • 同一个交换机不同vlan的设备为什么不能通信
  • 《业务三板斧:定目标、抓过程、拿结果》读书笔记4
  • PRCV 2024 - Day2
  • 大厂面试真题-了解云原生吗,简单说一下docker和k8s
  • Python基础入门
  • 深入了解路由
  • 三大编程思想(POP、OOP、AOP、FOP)及oop 五大设计原则
  • JavaWeb开发4
  • Git中Update和Pull的区别
  • 物理安全概述
  • 引领智慧文旅新纪元,开启未来旅游新境界
  • Qt开发技巧(十七):新窗口控件用智能指针,将一些配置类变量封装起来,Qt窗体的Z序叠放,子窗体的释放,Qt中的事件发送,Qt的全局头文件
  • 5G 现网信令参数学习(1) - MIB
  • stm32单片机个人学习笔记9(TIM输入捕获)