189 8069 5689

MySQL中怎么实现行级锁

这篇文章给大家介绍MySQL中怎么实现行级锁,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

金牛网站制作公司哪家好,找创新互联建站!从网页设计、网站建设、微信开发、APP开发、响应式网站开发等网站项目制作,到程序开发,运营维护。创新互联建站于2013年成立到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联建站

MySQL行级锁怎么实现

mysql>LOCKTABLESreal_tableWRITE,insert_tableWRITE;

mysql>INSERTINTOreal_tableSELECT*FROMinsert_table;

mysql>TRUNCATETABLEinsert_table;

mysql>UNLOCKTABLES;

InnoDB使用行级锁,BDB使用页级锁。对于InnoDB和BDB存储引擎来说,是可能产生死锁的。这是因为InnoDB会自动捕获行锁,BDB会在执行SQL语句时捕获页锁的,而不是在事务的开始就这么做。

MySQL行级锁的优点和缺点有哪些

MySQL行级锁的优点有:

在很多线程请求不同记录时减少冲突锁。

事务回滚时减少改变数据。

使长时间对单独的一行记录加锁成为可能。

MySQL行级锁的缺点有:

比页级锁和表级锁消耗更多的内存。

当在大量表中使用时,比页级锁和表级锁更慢,因为他需要请求更多的所资源。

当需要频繁对大部分数据做GROUPBY操作或者需要频繁扫描整个表时,就明显的比其它锁更糟糕。

使用更高层的锁的话,就能更方便的支持各种不同的类型应用程序,因为这种锁的开销比行级锁小多了。

表级锁在下列几种情况下比页级锁和行级锁更优越:

很多操作都是读表。

在严格条件的索引上读取和更新,当更新或者删除可以用单独的索引来读取得到时:

UPDATEtbl_nameSETcolumn=valueWHEREunique_key_col=key_value;

DELETEFROMtbl_nameWHEREunique_key_col=key_value;

SELECT和INSERT语句并发的执行,但是只有很少的UPDATE和DELETE语句。

很多的扫描表和对全表的GROUPBY操作,但是没有任何写表。

表级锁和行级锁或页级锁之间的不同之处还在于:

将同时有一个写和多个读的地方做版本(例如在MySQL中的并发插入)。也就是说,数据库/表支持根据开始访问数据时间点的不同支持各种不同的试图。其它名有:时间行程,写复制,或者是按需复制。

关于MySQL中怎么实现行级锁就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


当前题目:MySQL中怎么实现行级锁
地址分享:http://cdxtjz.com/article/jidehp.html

其他资讯