为什么MySQL mariadb无回滚数据?

时间:2019-01-02 04:29:07

标签: mysql sql mariadb commit

在不同的硬件(例如带Windows操作系统的笔记本电脑)中多次使用MySQL服务器之后,在极少数情况下,数据会回滚到以前的事务。该算法通常在与不同客户端进行的数千个事务中运行良好,但是在关闭应用程序并释放内存的情况下,发生0.01%的情况时会发生某些情况,最后4或10个事务的数据将回滚。该应用程序是台式机,是使用.net和MySQL库以及localhost站中的mariadb 10.2免费版开发的。如果提交失败,请重试。某些事务是否有可能在发生错误后部分保存数据,并且事务无法正常关闭?提交失败的原因是什么????,或者硬盘发生故障,或Windows问题。 ??。 如果显示报告数据,则提交工作正常,但在关闭应用程序数据回滚的情况下,???为什么??? 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

看似随机的ROLLBACKs的原因很多。

在事务中的每个语句之后和COMMIT之后检查错误。 (关于Commit的错误可能仅发生在基于Galera的群集和组复制中。但是还是要进行测试。)

发生错误时,尝试捕获SHOW ENGINE INNODB STATUS;。打开innodb_print_all_deadlocks,然后查看日志。

同时,您可以描述交易吗?更好的是,向我们展示所涉及的SQL。