MYSQL存储引擎InnoDB(八十五):InnoDB错误处理
以下各项介绍InnoDB如何执行错误处理。 InnoDB有时只回滚失败的语句,其他时候则回滚整个事务。
1、如果表空间中的文件空间不足,则会发生 MySQL 错误并回滚 SQL 语句。
2、事务死锁会导致回滚整个事务。发生这种情况时,请重试整个事务。
锁定等待超时会导致回滚当前语句(正在等待锁定并遇到超时的语句)。要回滚整个事务,请在启用
--innodb-rollback-on-timeout 的情况下启动服务器。如果使用默认行为,请重试该语句;如果启用了
--innodb-rollback-on-timeout,则重试整个事务。
死锁和锁定等待超时在繁忙的服务器上都是正常的,应用程序必须意识到它们可能会发生,并通过重试来处理它们。通过在事务期间对数据的第一次更改和提交之间尽可能少地执行工作,可以降低它们的可能性,因此锁的保留时间尽可能短,行数尽可能少。有时,在不同交易之间拆分工作可能是实际和有帮助的。
3、如果尚未在语句中指定IGNORE 选项,则重复键错误将回滚 SQL 语句。
4、行过长错误会回滚 SQL 语句。
下一篇:mysql导入数据库诡异出错一例