首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

程序员:数据库的事务控制和锁定语句,很实用!

哈喽,小伙伴,继续给大家分享数据库的支持,事务控制和锁定语句。

MYSQL支持对MyISAM和MEMORY存储引擎的表进行表级锁定,对BDB存储引擎的表进行页级锁定,对InnoDB存储引擎的表进行行级锁定。

LOCK TABLES 可以锁定用于当前线程的表。如果表被其他线程锁定,则当前线程会等待,直到可以获取所有锁定为止。

UPLOCK TABLES 可以释放当前线程获得的任何锁定。当前线程执行另一个LOCK TABLES时,或当与服务器的链接被关闭时,所有由当前线程锁定的表被隐含地解锁。

事务控制

默认情况下,MYSQL是自动提交的,如果需要通过明确的Commit和Rollback来提交和回滚事物,那么就需要通过明确的事物控制命令来开始事物,这是和Oracle的事物有着明显不同的地方。

分布式事务的使用

1、分布式事务的原理

资源管理器用于提供通向事务资源的途径。

事务管理器用于协调作为一个分布式事务一部分的事物。

在第一阶段,所有的分支被预备好。

在第二阶段,TM告知RMs是否要提交或回滚。

例如,当一个事务管理器发现,一个分布式事务只由一个事务资源组成(即单一分支),则该资源可以被告知同时进行预备和提交。

MYSQL的分布事务还存在比较严重的缺陷,在数据库或者应用异常的情况下,肯能会导致分布式事务的不完整。如果应用对于数据的完整性要求不高,则可以考虑使用。如果应用对事务的完整性有比较高的要求,那么对于当前的版本,则不推荐使用分布式事务。

总结,事务控制和锁定是MYSQL的重要特点之一。简单介绍了MYSQL提供事务控制和锁定,并对分布式事务进行简单的介绍。在后期的分享中,还会介绍到锁机制、死锁和应用中需要注意的问题。

欢迎大家在评论区留下自己的观点!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190129A18D4700?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券