文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

MySQL中怎么实现行级锁

2024-04-02 19:55

关注

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

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

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯