我试图了解 ACID 事务,但我对持久性一无所知。
据我所知,持久性可确保保存所有已完成的交易,即使发生某种技术故障。即使发生某种技术故障也能获救意味着什么。例如,如果我的服务器在事务期间崩溃,在将数据保存到数据库之前,持久性如何确保在服务器再次启动时它会正确保存数据?
最佳答案
在实践中,如果发生技术故障,事务要么全部提交,要么全部回滚。
涉及服务器意外停止的故障(例如,由于灾难性破坏)通常会导致事务被回滚(数据保留在事务开始之前的状态,而不是某些中间状态)。
必须重复回滚事务。这取决于使用数据库的应用程序。因此,ACID 给应用程序增加了一定的负担,让应用程序知道事务何时完成或未完成。
这在实践中是一个非常复杂的主题。程序员花费了成千上万年的时间来使事务处理尽可能地健壮。
关于mysql - ACID 事务,持久性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52200093/