区别

MyISAM默认为表级锁,不支持行级锁
InooDB默认为行级锁,同时支持表级锁

锁的分类

MyISAM 与 InooDB锁的区别

MyISAM的锁

  • 读锁(又叫共享锁)当有一个对表进行查询的操作在执行的时候,将会对表上一个表锁,其他对表的修改操作将不能执行,但是其他对表的读取操作能够执行。所有又叫共享锁
  • 写锁(又叫排他锁)当有一个对表进行写入的操作时,会对表上一个写锁,其他对表的查询、修改操作都不能够被执行,所以又叫做排他锁。
  • 还可以手动上锁与解锁
    MyISAM 与 InooDB锁的区别
    MyISAM 与 InooDB锁的区别
    MyISAM 与 InooDB锁的区别
    MyISAM 与 InooDB锁的区别

InooDB的锁

使用二段锁(先对同一个事物中的操作加锁,在commit的时候再解锁)
默认使用行级锁,但是在关闭事务的情况下,在查询一行数据的同时,还是能对其进行修改。是因为InnoDB对锁进行了优化。为验证InnoDB能够进行行级锁,可以对查询的行加共享锁,之后,对另外一行进行修改,发现能够修改成功。
MyISAM 与 InooDB锁的区别
需要注意的是InooDB在使用索引查询的时候使用的是行级锁,非索引的时候会使用表级锁。

MyISAM 与 InooDB锁的区别
MyISAM 与 InooDB锁的区别

相关文章:

  • 2021-06-27
  • 2022-01-08
  • 2021-07-03
  • 2021-04-30
  • 2021-06-08
猜你喜欢
  • 2021-11-13
  • 2021-08-03
  • 2021-09-15
  • 2021-06-03
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案