Mysql锁与事务

2020-03-23  本文已影响0人  hcq0514

1 锁的分类

  1. 表锁(偏读)
    表锁偏向MyISAM存储引擎,开销小,加锁快,无思索,锁定粒度大,发生锁冲突的概率最高,并发度最低。
    MyISAM在执行查询语句(SELECT)前,会自动给涉及的所有表加读锁,在执行增删改操作前,会自动给涉及的表加写锁。
    1、对MyISAM表的读操作(加读锁) ,不会阻寒其他进程对同一表的读请求,但会阻赛对同一表的写请求。只有当读锁释放后,才会执行其它进程的写操作。
    2、对MylSAM表的写操作(加写锁) ,会阻塞其他进程对同一表的读和写操作,只有当写锁释放后,才会执行其它进程的读写操作
    总结:
    简而言之,就是读锁会阻塞写,但是不会阻塞读。而写锁则会把读和写都阻塞。
  1. 行锁(偏写)
    行锁偏向InnoDB存储引擎,开销大,加锁慢,会出现死锁,锁定粒度最小,发生锁冲突的概率最低,并发度也最高。
    InnoDB与MYISAM的最大不同有两点:一是支持事务(TRANSACTION);二是采用了行级锁。
    3.1 事务特性ACID

  2. 并发事务会带来的问题

  1. 事务的隔离级别
    脏读”、“不可重复读”和“幻读”,其实都是数据库读一致性问题,必须由数据库提供一定的事务隔离机制来解决。
上一篇下一篇

猜你喜欢

热点阅读