首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >锁定DB表并等待从web应用程序写入/读取它

问锁定DB表并等待从web应用程序写入/读取它
EN

Software Engineering用户
提问于 2021-07-08 11:22:01
回答 1查看 1.1K关注 0票数 -1

我正在使用Spring (Java和JPA + Hibernate)开发一个web应用程序,我想知道是否有一种锁定MYSQL表的方法,然后当另一个web服务(甚至是来自同一应用程序的另一个线程)试图读取或写入锁定的表时,它会等待它被解锁。

例如,假设一个用例(事务)需要读取一个值,然后增加它。存在并发问题,因为两个或多个线程同时试图对同一个表进行read+write。

我必须手动编程吗?使用java或使用他的任何库可以吗?

EN

回答 1

Software Engineering用户

发布于 2021-07-09 10:25:32

其他人对此发表了评论--我会直截了当地说出来。

别锁整张桌子。

根据定义,Web应用程序是多用户、多线程野兽,每个用户和每个线程都希望在“同一时间”处理许多表中的许多行。

想象一下在高速公路上行驶的汽车。

  • 关闭一条单车道会减缓受影响车道中的bit.流量等待,其他交通继续流动。
  • 关闭整个高速公路导致chaos.一切停止。排成一排的队伍需要很长时间才能清理干净,即使高速公路重新开通也是如此。

在数据库中也会发生同样的事情。

  • 使用事务会使一些通信量降低一些(当然,事务应该是临时短的)。
  • 锁定整个表"logjams“所有想要使用该表的东西。如果这是您的应用程序中的“核心”表?麻烦大了。

了解事务以及如何可靠地读取这些事务中的数据。

别再锁整张桌子了。

票数 1
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/430057

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档