首页 > 数据库 >记录一次线上慢sql查询问题

记录一次线上慢sql查询问题

时间:2022-12-29 11:24:26浏览次数:50  
标签:bin 字符 ci 字符集 查询 大小写 线上 sql

       昨天晚上上线后,发现在app查询功能时候,整个系统直接爆出大量的慢sql报警。紧急回滚后查找问题,然后执行sql的执行计划:

     

 

   发现有一个全表扫描的问题,大量的查询导致了慢sql 。  

     之后再预生产重现,但是发现加上索引后仍然没有生效。为什么呢? 最后发现是关联表的字符集的排序规则不一致:旧表使用的是bin,新表使用的是ci

    

字符序是以对应的字符集名称开头、以_ci(不区分大小写)、_cs(区分大小写)、_bin(按编码值比较,区分大小写)等结尾。字符序的作用就是每种不同的字符集在比较时采用的不同的方法,例如:当会话的collation_connction设置为utf8_general_ci字符序时,字符a和字符A是等价的,而当其设置为utf8_bin时,字符a和字符A是不等价的。

 字符集的排序规则修改为一直正常

 

     

标签:bin,字符,ci,字符集,查询,大小写,线上,sql
From: https://www.cnblogs.com/thinkingandworkinghard/p/17011985.html

相关文章

  • MySQL创建数据表基础篇
    ......
  • 大数据 ODS&DWD&DIM-SQL分享
    大数据ODS&DWD&DIM-SQL分享需求思路一:等差数列断2天、3天,嵌套太多1.1开窗,按照id分组,同时按照dt排序,求Rank--linux中空格不能用tab键selectid,dt,rank......
  • gin+MySQL简单实现数据库查询
    利用gin项目搭建一个简易的后端系统。一个简易的HTTP响应接口首先在go工作区的终端输入这条指令:goget-ugithub.com/gin-gonic/gin将gin项目的相关依赖保存......
  • SQL Server 2019 内置函数
    SQLServer2019内置函数SQLServer为了日常方便加入了一些内置函数,可以供使用者直接使用,避免用户再去编写函数。如何学习过C语言可能知道,我们经常使用字符串处理函数,如......
  • MySQL-存储引擎架构
    MySQL是一种分层体系结构的关系数据库。一共有三层:客户(连接)层,Server层,存储引擎层。简单理解就是这三层架构。官网的解释在这里。(这个部分建议看8.0的文档,8.0文档补充了架......
  • 利用VBA字典实现单条件,结果多值查询
    来源:利用VBA字典实现单条件,结果多值查询-知乎(zhihu.com)很好的利用字典数据类型 利用VBA字典实现单条件,结果多值查询VBA语言专业教育分享成果,随喜......
  • CentOS7安装MySQL5.7
    先进入MySQLCommunityDownloads(https://dev.mysql.com/downloads/),选择使用红色红框标记的菜单MySQLCommunityServer因为我们这里示范安装的是MySQL5.7.38,所以进......
  • Linux安装MySQL 8.0.27
    cd/usr/localmkdirmysqlcdmysqlwgethttps://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz#下载可能需要几分钟tar......
  • MySQL杂谈
    重拾mysql,记点新知识1、关于外键约束,项目中一直少用外键约束,是怕删除的时候删除不掉,原来是可以设置的,关于外键约束有四种更新行为NOACTION:当在父表中删除/更新对应......
  • Windows安装MySQL-5.7.27
    一、确认本地是否安装mysql按win+r快捷键打开运行;输入services.msc,点击【确定】;在打开的服务列表中查找mysql服务,如果没有mysql服务,说明本机没有安装mysql,反之,说明......