起因:

生产的工单系统的mysql 数据库CPU 100%。由于是周边系统使用虚机,数据量也很小。

show processlist;看到很多进程在sending data;

开始分析SQL

sql:如下(这已经截取慢的这一层,实际还要复杂很多,表明已其他字符代替):
执行直接40+秒

SELECT a.ASSIGNEE_, b.GROUP_ID_, COUNT(a.ASSIGNEE_) AS totalFROM fadfdsf a, fdadfd bWHERE b.TASK_ID_ = a.ID_AND b.GROUP_ID_ = '12'AND a.ASSIGNEE_ IS NOT NULLAND a.START_TIME_ >= date'2019-03-20'AND a.PROC_DEF_ID_ = 'xxxxxAND NOT EXISTS(SELECT 1FROM fdsafs WHERE processInstanceId = a.PROC_INST_ID_AND taskId = a.ID_)GROUP BY a.ASSIGNEE_, b.GROUP_ID_
开始发现start_time上没有索引,首先在start_time上建上索引,还是慢:查看执行计划+----+--------------------+------------------+-------+----------------------------------------+---------------------------+---------+-------------+--------+---------------------------------------------------------------------+
| id | select_type        | table            | type  | possible_keys                          | key                       | key_len | ref         | rows   | Extra                                                               |
+----+--------------------+------------------+-------+----------------------------------------+---------------------------+---------+-------------+--------+---------------------------------------------------------------------+
|  1 | PRIMARY            | a                | range | PRIMARY,ind_act_start_time             | ind_act_start_time        | 7       | NULL        |   2957 | Using index condition; Using where; Using temporary; Using filesort |
|  1 | PRIMARY            | b                | ref   | ACT_IDX_HI_IDENT_LNK_TASK              | ACT_IDX_HI_IDENT_LNK_TASK | 195     | ytbpm.a.ID_ |      1 | Using where                                                         |
|  2 | DEPENDENT SUBQUERY | tb_process_deals | ALL   | index_process_id,ind_tb_process_taskId | NULL                      | NULL    | NULL        | 124215 | Range checked for each record (index map: 0x6)                      |
+----+--------------------+------------------+-------+----------------------------------------+---------------------------+---------+-------------+--------+---------------------------------------------------------------------+

发现没有走
ind_tb_process_taskId索引。

查找原因,发现两个表的collect不同:

由于上面的表是有流程应用自动生成,为utf8_bin:
而自己创建的表是 utf8_general_ci,解决办法

1.将 taskId字段改成ut8_bin:

alter table sdfsdfd CHANGE taskId  taskId VARCHAR(45) CHARACTER SET utf8 COLLATE utf8_bin;

2.可以查询时候列修改输出:

SELECT k COLLATE utf8_bin AS k1
FROM t1
ORDER BY k1;

后查询不到0.1秒。

找了下MYSQL 官方文档:

MYSQL索引失效(COLLATE不一致)相关推荐

  1. MySQL 索引失效的 15 种场景!

    背景 无论你是技术大佬,还是刚入行的小白,时不时都会踩到Mysql数据库不走索引的坑.常见的现象就是:明明在字段上添加了索引,但却并未生效. 前些天就遇到一个稍微特殊的场景,同一条SQL语句,在某些参 ...

  2. 15个必知的Mysql索引失效场景,别再踩坑了

    背景 无论你是技术大佬,还是刚入行的小白,时不时都会踩到Mysql数据库不走索引的坑.常见的现象就是:明明在字段上添加了索引,但却并未生效. 前些天就遇到一个稍微特殊的场景,同一条SQL语句,在某些参 ...

  3. like左匹配索引失效_导致MySQL索引失效的一些常见写法总结

    前言 最近一直忙着处理原来老项目遗留的一些SQL优化问题,由于当初表的设计以及字段设计的问题,随着业务的增长,出现了大量的慢SQL,导致MySQL的CPU资源飙升,基于此,给大家简单分享下这些比较使用 ...

  4. MySQL 索引失效详解

    MySQL 索引失效详解 一.MySQL索引失效原因汇总 隐式的类型转换,索引失效 查询条件包含or,可能导致索引失效 like通配符可能导致索引失效 查询条件不满足联合索引的最左匹配原则 在索引列上 ...

  5. MySQL索引失效的9种情况(针对InnoDB存储引擎)

    前言 MySQL中提高查询性能的最有效的方式之一就是对数据表合理的设计索引,优秀的索引的设计方案很大程度上可以提高查询的性能. 因此,索引对查询的速度有着至关重要的影响. 为了尽量的使优化器用到我们的 ...

  6. 详解MySQL索引失效的几种情况

    MySQL索引是提高查询效率的重要手段.索引失效会导致查询效率下降,甚至全表扫描,影响数据库性能.以下是可能导致MySQL索引失效的情况: 1. 使用or操作符 当where语句中使用or操作符并且o ...

  7. mysql 索引失效分析

    大神总结的索引失效一句话理解后就不用看我下面的文章了,这就是 "模型数空运最快" 模:模糊查询like  %在前面索引失效 型:数据类型有变化索引失效 数:索引列使用了函数索引失效 ...

  8. mysql索引失效索引创建原则

    一.mysql索引失效: 1.like 以%开头,索引无效:当like前缀没有%,后缀有%时,索引有效. 2.or语句前后没有同时使用索引. 当or左右查询字段只有一个是索引,该索引失效,只有当or左 ...

  9. 什么情况会导致 MySQL 索引失效?

    为了验证 MySQL 中哪些情况下会导致索引失效,我们可以借助 explain 执行计划来分析索引失效的具体场景. explain 使用如下,只需要在查询的 SQL 前面添加上 explain 关键字 ...

  10. mysql索引失效_导致MySQL索引失效的几种常见写法

    最近一直忙着处理原来老项目遗留的一些SQL优化问题,由于当初表的设计以及字段设计的问题,随着业务的增长,出现了大量的慢SQL,导致MySQL的CPU资源飙升,基于此,给大家简单分享下这些比较使用的易于 ...

最新文章

  1. java培训教程:什么是匿名内部类?怎样创建匿名内部类?
  2. 网络营销之CPA、CPS、CPM、CPT、CPC 是什么
  3. ajax滚动条动态加载,下拉滚动条,动态加载ajax加载数据
  4. 第一百八十二节,jQuery-UI,知问前端--日历 UI
  5. TTL串口传输时,当收发线的长度和地线的长度不一样时,发生数据传输错误
  6. Wi-Fi 还是蜂窝?搞物联网怎么选择连接协议?
  7. 麦迪逊大学计算机科学咋样,威斯康星大学麦迪逊分校
  8. Bailian2701 Bailian3864 与7无关的数【进制】(POJ NOI0105-39)
  9. 26. 安全 HTTP
  10. linux下载的安装包位置,及下载安装包到本地
  11. 基于python的论文摘要怎么写_Python实现文章摘要的提取方式
  12. jmeter之http取样器
  13. Google快讯-UTStarcom
  14. 【计算机网络】5G网络结构————5G技术大有可为
  15. Vue提示 : Named Route ‘test‘ has a default child route. When navigating to this named route (:to=“{nam
  16. YGG:2021年年终回顾
  17. 【技美百人计划】图形 4.4 抗锯齿概论
  18. 云主机和物理机有什么区别?
  19. python 字符编码处理问题总结 彻底击碎乱码!
  20. 小程序实现文字两端对齐

热门文章

  1. 理解web项目中的VO,DTO,DO,PO
  2. _THROW 何解?
  3. 计算机辅助设计cad属于什么领域,【2人回答】CAD属于什么专业呢?-3D溜溜网
  4. C语言——指针相关概念理解
  5. SNAP 时间序列InSAR数据准备
  6. Android WindowManager
  7. 【行研报告】2021年新闻、媒体和科技趋势报告(英文)——附下载链接
  8. 在对话框显示图片的多种方法(下)
  9. 仿某网站百度地图页面 百度API
  10. Ad Hoc网络技术浅析