记一次MySql唯一索引在left join连表查询没走索引的问题

在新建一张账单结算信息表bill_settlement_info的时候,建立的唯一索引uk_bill_no(bill_no,tenant_id)。由于列表查询用到该表的字段。所以在sql中自然做了jeft join查询。

on条件是bill.billNo=bill_settlement_info.billNo。

自然认为这样的链表会走bill_settlement_info的索引。但是上线生产后,由于生产数据增长很快。立马发现列表查询时,使用bill_settlement_info表中的字段过滤数据时。查询超时。

排查后发现是慢SQL导致。

使用explan分析查询语句发现是连表bill_settlement_info查询时。没有走索引。连表语句:

select * from bill left join bill_settlement_info on bill.bill_no = bill_settlement_info.bill_no

在on条件中加上tenant_id后,重新explan后发现走了索引

select * from bill left join bill_settlement_info on bill.bill_no = bill_settlement_info.bill_no and bill.tenant_id = bill_settlement_info.tenant_id

所以能得出结论。MySql的唯一索引是严格按照左匹配原则的。

Original: https://www.cnblogs.com/zhuzhen/p/16355075.html
Author: 十七年蝉
Title: 记一次MySql唯一索引在left join连表查询没走索引的问题

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/622192/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • JavaWeb详解

    一、基本概念 1.前言 web开发: web,网页的意思 静态web html,css 提供给所有人看的数据始终不会发生变化 动态web 提供给所有人看的数据始终会发生变化,每个人…

    数据库 2023年6月16日
    0103
  • String类常用的API

    String类常用API总结及注意事项 String类常用的API 字符串内容的比较: 注意: 不能使用 == 去比较两个字符串的内容。原理:比较的是字符串的地址。(如果两个字符串…

    数据库 2023年6月16日
    0108
  • 记一次vcenter连接esxi失败问题排查(443端口不通)

    vecenter错误 esxi宿主机重启后,vcenter连接esxi提示超时,使用vmware客户端连接esxi也提示超时,开始介入排查。 故障排查 如何进入命令终端 运行alt…

    数据库 2023年6月9日
    0118
  • IDEA 常用插件

    插件使用参考:Idea插件系列 插件名称 说明 IDE Eval Reset 破解软件 Alibaba Java Coding Guidelines 阿里巴巴开发规范 tabnin…

    数据库 2023年6月6日
    090
  • 学习笔记——Django项目中请求与响应(json数据)

    2022-10-04 测试json数据与Django项目与pycharm连接,在”postman”软件中。”postman”是一个接…

    数据库 2023年6月14日
    0152
  • Mongodb使用总结

    Mongodb使用总结 基于内存操作,便于与网站交互 数据库-集合-文档(存储多种数据类型),我们的操作都是基于单文档进行操作,并且通过冗余字段进行操作 嵌入式数组文档减少了对昂贵…

    数据库 2023年6月11日
    087
  • Mysql-5.7主从部署-yum方式

    一、环境准备 rpm -qa |grep mariadb |xargs yum remove -y setenforce 0(临时关闭),(selinux配置文件:SELINUX=…

    数据库 2023年5月24日
    067
  • 5、Idea同时选择多处光标进行编辑

    1、按住Alt+Shift,然后用鼠标左键点击文本,可以让光标在多个位置出现2、每个光标都会同时输入你正在输入的文本3、ESC退出 搜索 复制 Original: https://…

    数据库 2023年6月6日
    0101
  • MySQL 中如何定位 DDL 被阻塞的问题

    经常碰到开发、测试童鞋会问,线下开发、测试环境,执行了一个DDL,发现很久都没有执行完,是不是被阻塞了?要怎么解决? 包括在群里,也经常会碰到类似问题:DDL 被阻塞了,如何找到阻…

    数据库 2023年5月24日
    068
  • 当你想静下来的时候,你就可以静下来。

    当你想静下来的时候,你就可以静下来。1,2年前,我有时还在为当时选的专业恼悔,因为继续教育是同事推荐的,最后同事给我的消息是,他在疫情后去其他公司,做人工智能的公司,拿月薪20K,…

    数据库 2023年6月11日
    097
  • 重新学习数据库(1)

    单元概述 通过本章的学习能够了解MySQL结构查询语言的概念,掌握SELECT查询语句的基本语法,掌握SELECT查询语句中过滤条件的使用,掌握过滤条件中比较运算符和逻辑运算符的使…

    数据库 2023年6月16日
    0204
  • Redis限制一键登录次数

    一、产生背景 之前的随笔提到过项目中写了一键登录功能、上线后除了有时候网络波动会导致登陆失败,其他情况一直稳如老狗 しかし,邮件看到有人恶意刷一键登录,这年头闲的人可真闲啊,只能思…

    数据库 2023年6月6日
    097
  • LRU算法

    class LRUCahce { private Node head; private Node tail; private Map hashMap; private int ca…

    数据库 2023年6月14日
    085
  • day03-拉取在线用户功能

    多用户即时通讯系统03 4.编码实现02 4.2功能实现-拉取在线用户 4.2.1思路分析 客户端想要知道在线用户列表,就要向服务器发送请求(Message),因为只有服务器端保持…

    数据库 2023年6月11日
    0171
  • MySQL视图

    视图 常见的数据库对象 视图概述 为什么使用视图 可以帮助我们使用表中的 部分数据,对其修改可以改变原来表中的值 可以简化查询 控制数据的访问(权限) 视图的理解 视图是一个本身没…

    数据库 2023年5月24日
    080
  • Redis学习笔记一

    ============================= Redis学习笔记一 注:笔记旨在记录 一、redis简介: 高性能的 key-value 数据库 特点: 支持数据持久…

    数据库 2023年6月16日
    076
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球