1

所以,我目前正在使用 MySQL,但任何 SQL 答案都可能会,因为我试图理解一般概念。

所以线程安全在并发环境中显然很重要。我主要使用 Java 进行编程,并且我总是非常小心地编写代码来保护其可变状态以避免线程冲突。

但是,在 SQL 中,我对如何实现同样的安全级别感到非常困惑。所以我要从我不知道的东西开始,继续我感到困惑的东西,然后从那里开始。

首先,我所知道的是交易。禁用自动提交、使用保存点、回滚等。据我了解,事务在提交时是原子的。

但我也看到了对显式锁定语句和并发模型(乐观、悲观)的引用。而且我真的不知道所有这些都适合。我也不想只对所有事情都使用事务并假设它是安全的。除非我完全理解它,否则我不会编写代码,我不想留下任何机会。

此外,触发器、过程等呢?如何将它们与事务一起使用?我如何确保那里的原子性?

我觉得我有点过于复杂了,但我正在寻找一个全面、明确的解释,以说明如何确保多个线程和用户可以安全地修改数据库。不完全是 ELI5,因为我对 SQL 的理解比这更好,但它真正彻底地解释了这个过程。

谢谢。在我的搜索中,我没有在此站点上找到与此问题相匹配的匹配项,但如果它是重复的,我深表歉意,并要求在锁定此问题之前提供指向适当答案的链接。

4

0 回答 0