首页 文章

ACID交易,耐用

提问于
浏览
3

我试图理解ACID事务,我没有得到关于耐久性的一件事 .

据我所知,持久性确保保存所有已完成的交易, even if some sort of technology failure occurs . 即使发生某种技术故障,保存意味着什么呢?例如,如果我的服务器在Transaction期间被粉碎,在将数据保存到数据库之前,持久性如何确保当服务器再次启动时它将正确保存数据?

1 回答

  • 3

    实际上,如果发生技术故障,事务将全部提交或回滚 .

    涉及不可预测的服务器暂停的故障(例如,由于灾难性破坏)经常导致事务被回滚(数据在事务开始之前的状态中保留,而不是在某个中间状态) .

    必须重复滚回事务 . 这取决于使用数据库的应用程序 . 因此,ACID会对应用程序施加一定的负担,以便知道交易何时完成或不完成 .

    这在实践中是非常复杂的主题 . 数以千计的程序员年代已经花费在使事务处理尽可能强大 .

相关问题