• MySQL 行锁、表锁


    1、 多个事务操作同一行数据时,后来的事务处于阻塞等待状态。这样可以避免了脏读等数据一致性的问题。后来的事务可以操作其他行数据,解决了表锁高并发性能低的问题

    2、InnoDB的行锁是针对索引加的锁,不是针对记录加的锁。并且该索引不能失效,否则都会从行锁升级为表锁。没有索引的字段更新会变为表锁。

    3、间歇锁 是指update  where id >6   大于6 这个间隙。危害(坑):若执行的条件是范围过大,则InnoDB会将整个范围内所有的索引键值全部锁定,很容易对性能造成影响

     4 for update 排他锁

    1 InnoDB 支持表锁和行锁,使用索引作为检索条件修改数据时采用行锁,否则采用表锁。
    2 InnoDB 自动给修改操作加锁,给查询操作不自动加锁
    3 行锁可能因为未使用索引而升级为表锁,所以除了检查索引是否创建的同时,也需要通过explain执行计划查询索引是否被实际使用。
    4 行锁相对于表锁来说,优势在于高并发场景下表现更突出,毕竟锁的粒度小。
    5 当表的大部分数据需要被修改,或者是多表复杂关联查询时,建议使用表锁优于行锁。
    6 为了保证数据的一致完整性,任何一个数据库都存在锁定机制。锁定机制的优劣直接影响到一个数据库的并发处理能力和性能。

    参考地址:https://www.cnblogs.com/itdragon/p/8194622.html

  • 相关阅读:
    Hive学习笔记记录
    Hadoop学习笔记记录
    python学习笔记记录
    2018高级软件工程——助教总结
    Week3 第二次结对编程
    Week2 第一次结对编程
    Week1 博客作业
    最后一周总结
    阅读和提问3
    个人项目 案例分析
  • 原文地址:https://www.cnblogs.com/brucetie/p/8259853.html
Copyright © 2020-2023  润新知