美文网首页PHP程序员
MySQL 中有哪几种锁?

MySQL 中有哪几种锁?

作者: php转go | 来源:发表于2020-08-30 01:12 被阅读0次

    (1)表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最 高,并发度最低。

    (2)行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最 低,并发度也最高。

    (3)页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表 锁和行锁之间,并发度一般。

    MySQL表级锁有两种模式:表共享锁(Table Read Lock)和表独占写锁(Table Write Lock)。
    对MyISAM的读操作,不会阻塞其他用户对同一表请求,但会阻塞对同一表的写请求;
    对MyISAM的写操作,则会阻塞其他用户对同一表的读和写操作;
    MyISAM表的读操作和写操作之间,以及写操作之间是串行的。

    MyISAM在执行查询语句(SELECT)前,会自动给涉及的所有表加读锁,在执行更新操作(UPDATE、DELETE、INSERT等)前,会自动给涉及的表加写锁,这个过程并不需要用户干预,因此用户一般不需要直接用LOCK TABLE命令给MyISAM表显式加锁。在本书的示例中,显式加锁基本上都是为了方便而已,并非必须如此。

    相关文章

      网友评论

        本文标题:MySQL 中有哪几种锁?

        本文链接:https://www.haomeiwen.com/subject/fdulsktx.html