欢迎光临
我们一直在努力

mysql使用混合引擎如何,MySQL香港高防服务器在事物中混合使用存储引擎

MySQL

如果在亊务中混合使用了事务型和非事务型的表(例如InnoDB和MyISAM表),在正常提交的倩况下不会有什么问题。

但如果该亊务需要回滚,非事务型的表上的变更就无法撤销,这会导致数据库处于不一 致的状态,这种情况很难修复,事务的最终结果将无法确定。所以,为毎张表选择合适 的存储引擎非常重要。

在非事务型的表上执行事务相关操作的时候,MySQL香港高防服务器通常不会发出提醒,也不会报错。 有时候只有回滚的时候才会发出一个警告:“某些非事务型的表上的变更不能被回滚”。 但大多数情况下,对非事务型表的操作都不会有提示。

mysql使用混合引擎如何,MySQL香港高防服务器在事物中混合使用存储引擎

隐士和显示锁定

InnoDB采用的是两阶段锁定协议(two-phase locking protocol)。在事务执行过程中,随时都可以执行锁定,锁只有在执行COMMIT或者ROLLBACK的时候才会释放,并且所有的锁是在同一时刻被释放。前面描述的锁定都是隐式锁定,InnoDB会根据隔离级别在需要的时候自动加锁。

另外,InnoDB也支持通过特定的语句进行显示锁定,这些语句不属于SQL规范:

(1)SELECT...LOCK IN SHARE MODE

(2)SELECT...FOR UPDAET

MySQL香港高防服务器也支持LOCK TABLES和UNLOCK TABLES语句,这是在香港高防服务器层实现的,和存储引擎无关。它们有自己的用途,但并不能替代事务处理。如果应用需要用到事务,还是应该选择事务型存储引擎。

经常可以发现.应用已经将表从MyISAM转换到InnoDB,但还是显示式地使用LOCK TABLES语句。这不但没有必要 ,还会严重影响性能,实际上InnoDB的行级锁工作得更好。

LOCK TABLES和事务之间相互影响的话.情况会变得非常复杂,在某些MySQLAUTOCOMMIT可以使用LOCK TABLES之外,其他任何时候鄯不要显式地执行LOCK TABLES,不管使用的是什么存储引擎。

  • 海报
海报图正在生成中...
赞(0) 打赏
声明:
1、本博客不从事任何主机及服务器租赁业务,不参与任何交易,也绝非中介。博客内容仅记录博主个人感兴趣的服务器测评结果及一些服务器相关的优惠活动,信息均摘自网络或来自服务商主动提供;所以对本博客提及的内容不作直接、间接、法定、约定的保证,博客内容也不具备任何参考价值及引导作用,访问者需自行甄别。
2、访问本博客请务必遵守有关互联网的相关法律、规定与规则;不能利用本博客所提及的内容从事任何违法、违规操作;否则造成的一切后果由访问者自行承担。
3、未成年人及不能独立承担法律责任的个人及群体请勿访问本博客。
4、一旦您访问本博客,即表示您已经知晓并接受了以上声明通告。
文章名称:《mysql使用混合引擎如何,MySQL香港高防服务器在事物中混合使用存储引擎》
文章链接:https://www.456zj.com/22045.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址