• 技术文章 >数据库 >mysql教程

    深入了解Mysql中的锁,聊聊使用场景!

    青灯夜游青灯夜游2022-06-28 20:55:49转载177
    本篇文章带大家了解一下Mysql中的锁,搞懂共享锁、排他锁、悲观锁、乐观锁,并聊聊使用场景,希望对大家有所帮助!

    一、常见锁类型


    常见锁类型

    二、Mysql引擎介绍

    show variables like '%storage_engine%';

    三、常用引擎间的区别

    四、共享锁与排他锁

    //共享锁
    select * from 表名 lock in share mode
    
    //排他锁
    select * from 表名 for update

    五、排他锁的实际应用

    T1: select * from 表名 lock in share mode //假设还未返回结果
    
    T2: update 表名 set name='autofelix'

    六、共享锁的实际应用

    T1: select * from table lock in share mode
    
    T2: select * from table lock in share mode

    七、死锁的发生

    T1: 开启事务,执行查询更新两个操作
    
         select * from table lock in share mode
    
         update table set column1='hello'
    
    T2: 开启事务,执行查询更新两个操作
    
         select * from table lock in share mode
    
         update table set column1='world'

    八、另一种发生死锁的情景

    T1: begin
         update table set content='hello' where id=10
    
    T2: begin
         update table set content='world' where id=20

    九、死锁的解决方式

    T1: begin
    
         select * from table for update
    
         update table set content='hello'
    
    T2: begin
    
         select * from table for update
    
         update table set content='world'
    T1: begin
    
         select * from table [加更新锁操作]
    
         update table set content='hello'
    
    T2: begin
    
         select * from table [加更新锁操作]
    
         update table set content='world'

    十、意向锁和计划锁

    十一、乐观锁和悲观锁

    update table set num=num-1 where id=10 and version=12

    【相关推荐:mysql视频教程

    以上就是深入了解Mysql中的锁,聊聊使用场景!的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:csdn,如有侵犯,请联系admin@php.cn删除
    专题推荐:mysql
    上一篇:mysql怎么查询表的字符集编码 下一篇:完全掌握MySQL主从延迟的解决方法
    20期PHP线上班

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• mysql中odbc是什么• mysql5.7.12怎么修改用户密码• linux中mysql的1045错误怎么解决• mysql视图能创建索引吗• mysql查询视图命令是什么• mysql怎么查询表的字符集编码
    1/1

    PHP中文网