zoukankan      html  css  js  c++  java
  • innodb的锁和高并发

    1 innodb的锁

    1.1 s锁,即读锁,即share锁

    1.2 x锁,即写锁,排他锁

    1.3 s锁和x锁之间的关系

    多个读锁可以共存,但是读锁不可以和写锁共存。写锁和写锁不可以共存。

    1.4 间隙锁

    就是对一段数据加锁,比如id大于3小于10的行加锁,防止插入id=4的数据。

    2 innodb高并发

    适合于读多写少的高并发,所以要想获取高并发,就要读写分离。

    3 死锁

    事务A有了1要2,事务B有了2要1。

    4 innodb的三种行锁

    第一,record lock

    单个行上的锁。

    第二,gap lock

    间隙上的锁,不包括行本身,解决幻读。

    第三,next lock

    包括间隙和行本身。

    5 锁是附加在sql语句中的,并不需要显示设置

    快照读,不需要加锁:

    select * from xxx-table where a = 1;

    当前读

    select * from xxx for update;

    insert into xxx-table values(xxx);

    这些需要加排他锁。

    6 所谓的两阶段锁

    就是把锁操作分成加锁阶段和解锁阶段。

    参考:

    http://hedengcheng.com/?p=771

    锁是mysql中最难的,加什么锁,跟事务的隔离级别,什么索引等都有关系。

  • 相关阅读:
    子库存安全性控制
    检查装配件属性
    检查加工费是否有父件
    检查委外货位
    只允许操作外协任务
    检查是否存在工艺路线
    不能取组织ID
    加宽任务号宽度
    采购订单供应商地点必输
    只显示标准采购订单
  • 原文地址:https://www.cnblogs.com/hustdc/p/8927245.html
Copyright © 2011-2022 走看看