• 锁冲突和死锁


    锁介绍
         InnoDB支持行级锁和表级锁,默认为行级锁,锁共有表级锁、行级锁、页面锁 
    死锁介绍
          锁冲突和死锁不是一个概念,锁冲突会按顺序执行,死锁是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,
      若无外力作用,它们都将无法推进下去。
           表级锁:开销小,加锁快;行级锁:开销大,加锁慢,表级锁不会产生死锁.所以解决死锁主要还是针对于最常用的InnoDB.
      在MySQL中,行级锁并不是直接锁记录,而是锁索引。索引分为主键索引和非主键索引两种,如果一条sql语句操作了主键索引,
      MySQL就会锁定这条主键索引;如果一条语句操作了非主键索引,MySQL会先锁定该非主键索引,再锁定相关的主键索引,当两种
      情况交叉就会出现死锁;在UPDATE、DELETE操作时,MySQL不仅锁定WHERE条件扫描过的所有索引记录,而且会锁定相邻的键值,
      即所谓的next-key locking这也是行锁加锁慢的原因。SELECT时只有只读锁,但是update..select时会变成写锁.
    一般情况
      1 update..select某个只有主键的表时,会锁定整个表,解决方案是为where 条件后面的字段增加索引
      2 update..select 非主键与update where 主键时可能出现上面定义的死锁,解决方案是update..select 先select后update

    http://www.oracle.com/technetwork/java/javase/downloads/index.html
  • 相关阅读:
    Simple ASP.NET CORE 2.2 App +Vue JS
    Upload Image to .NET Core 2.1 API
    Nginx支持WebSocket服务
    DD打卡
    Asp.net Core 源码-PagedList<T>
    Asp.net Core 源码-UrlExtensions
    Asp.net Core 源码-SessionExtensions
    树莓派资源集合
    frp内网穿透
    Nuget包含cssjs等资源文件
  • 原文地址:https://www.cnblogs.com/ai464068163/p/2826474.html
Copyright © 2020-2023  润新知