首页 > 数据库 >MYSQL5.7索引异常引发的锁超时处理记录

MYSQL5.7索引异常引发的锁超时处理记录

时间:2023-02-08 18:15:22浏览次数:43  
标签:xdate MYSQL5.7 update 索引 sql 超时 select

原始sql:

update a set a.x=x where a.xid in (select b.xid from b inner join c on b.xxx = c.xxx) and a.xdate='xxxxxxxx'

现象 sql 执行中,b表会偶尔提示锁超时。

处理过程:

  已知 mysql5.7 repeatable read 模式下 update会把关联到的所有表记录全部加锁 b表相关记录 也会加锁。

  已知 a.xdate 有索引,扫描量在5W左右,正常应该几秒内执行完成不会造成锁超时。

  尝试排查后发现 update a set a.x=x where  a.xdate='xxxxxxxx'  索引失效  但是  select * from  a  where  a.xdate='xxxxxxxx'  索引生效。

  结论 由于mysql 索引问题,导致update的sql执行时间远超预计,与其他程序的sql冲突导致锁超时。

处理结论:

  临时:将in 改写为join方式,a.xdate='xxxxxxxx'索引生效,执行时间大大缩短,基本能杜绝锁超时可能。

  正规:拒绝多表关联update,程序内拆分sql。

  作死:降低mysql事务隔离级别应该也能解决。

 

关于mysql select与update索引使用不一致的问题,同款异常:

https://dba.stackexchange.com/questions/153293/update-does-not-use-index-but-select-does

标签:xdate,MYSQL5.7,update,索引,sql,超时,select
From: https://www.cnblogs.com/windghost/p/17102818.html

相关文章

  • 【转载】一款含金量超高的专利数据库使用简介——德温特创新索引
    原文地址:一款含金量超高的专利数据库使用简介——德温特创新索引(njust.edu.cn)  ========================================  科睿唯安的德温特是全球最知......
  • 【MySQL高级】索引优化
    目录​​1.使用索引优化​​​​1.1数据准备​​​​1.2避免索引失效应用-全值匹配​​​​1.3避免索引失效应用-最左前缀法则​​​​1.4避免索引失效应用-其他匹配原则​......
  • java控制接口超时时间
    packagecom.xf;importjava.util.concurrent.Callable;publicclassbbbimplementsCallable{privatefinalStringb1;publicbbb(Stringb1){......
  • sqlserver重建索引
    `DECLARE@objectidINT;DECLARE@indexidINT;DECLARE@partitioncountBIGINT;DECLARE@schemanamesysname;DECLARE@objectnamesysname;DECLARE@indexnamesysn......
  • 数据库索引
    索引的建立必须慎重,对每个索引的必要性都应该经过仔细分析,要有建立的依据。 因为太多的索引与不充分、不正确的索引对性能都毫无益处:在表上建立的每个索引都会增加存储......
  • MYSQL因IN的范围太大导致索引失效问题
    背景最近发现有个用于统计的门店串码激活数量的SQL特别慢,将其摘出来大致如下SELECTa.sku_idasskuId,a.store_idasstoreId,count(*)assaleQtyFROMall_imei_inf......
  • 索引的分类及优化回表查询的方案
    索引可以按照以下几个角度进行分类:从数据结构的角度分类B+tree索引Hash索引Full-texts索引从物理存储的角度分类聚簇索引二级索引【辅助索引】从索引字段......
  • B-Tree(B+Tree)与Hash索引的限制
    index(name,age,sex)B-Tree(B+Tree)限制查询条件不包括最左列,无法使用索引whereage=5andsex=1无法使用索引跳过了索引中的列,则无法完全使用索引w......
  • 开心档-软件开发入门之MongoDB 覆盖索引查询
     作者简介:每天分享​​MongoDB教程​的学习经验、和学习笔记。  座右铭:有自制力,做事有始有终;学习能力强,愿意不断地接触学习新知识。个人主页:​​雪奈椰子的主页​​ 前......
  • 开心档-软件开发入门之MongoDB 覆盖索引查询
    作者简介:每天分享MongoDB教程的学习经验、和学习笔记。  座右铭:有自制力,做事有始有终;学习能力强,愿意不断地接触学习新知识。个人主页:iOS开发上架的主页​​​......