一个关于Cobar 的释疑

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用版 2核4GB 50GB
简介:

在测试Cobar的过程中发现了一个问题,就是当一个session执行了lock table xxx write,其他session包括该session都查询不了其他表了,直到有一个session执行了unlock tables;简例如下:

session1:

mysql> create table t (id int primary key)engine=innodb;

Query OK, 0 rows affected (0.08 sec)


session2:

lock table t write;


session1:

mysql> select * from sbtest limit 1;

ERROR 1100 (HY000): Table 'sbtest' was not locked with LOCK TABLES


session2:

unlock tables or quit;


session1:

can select other tables;

但是不同的session却可以保证事务的隔离性,这是为什么呢?其实答案就在这句话里;

默认情况下MySQLautocommit=1,并且使用Cobar默认情况是初始化一个共享后端连接;

当一个session执行lock table write返回后,这个后端连接会被释放到连接池里(MySQLChannel)等待被重用,这时如果再有其他session执行查询的话拿到的连接其实是lock tablewrite的状态,所以才有上面的那个现象;

work around也很简单,就是在执行lock tablewrite之前执行setautocommit=0,这样这个连接不会释放回去直到提交;


本文转自MIKE老毕 51CTO博客,原文链接:http://blog.51cto.com/boylook/1298646,如需转载请自行联系原作者



相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
存储 关系型数据库 MySQL
太厉害了!华为大牛终于把MySQL讲的明明白白(基础+优化+架构)
爱因斯坦说过“耐心和恒心总会得到报酬的”,我也一直把这句话当做自己的座右铭,这句箴言在今年也彻底在“我”身上实现了。 每一个程序员都拥有一座大厂梦,我也不例外,去年面试阿里,竟然被MySQL问倒了,很多相关性的问题都没有答上来,才2面就凉凉了。为面试做了很多准备,收集很多关于MySQL面试题
|
11月前
|
存储 关系型数据库 MySQL
|
存储 缓存 分布式计算
「技术选型」Solr与ES难以抉择?且看第一回
「技术选型」Solr与ES难以抉择?且看第一回
6000字搞不懂大型网站架构技术细节:后端架构数据库分布式事务?
上节中讨论的数据库事务是解决“单个数据库数据不一致”的问题,而在一些具有规模的网站系统当中,数据库往往不止一个,一旦出现多个数据库,则会出现多数据库的数据不一致问题。 多个数据库的数据不一致问题一般有两种场景,如图4.76所示。
|
SQL 运维 安全
老板,明年我用Seata搞定分布式事务管理的规范化建设 | 中篇
老板,明年我用Seata搞定分布式事务管理的规范化建设 | 中篇
103 0
老板,明年我用Seata搞定分布式事务管理的规范化建设 | 中篇
|
消息中间件 监控 数据库
|
运维 Java 关系型数据库
【ShardingSphere技术专题】「ShardingJDBC」(1)带你一同认识一下ShardingJDBC是什么?(高手勿入)
【ShardingSphere技术专题】「ShardingJDBC」(1)带你一同认识一下ShardingJDBC是什么?(高手勿入)
162 0
|
cobar 关系型数据库 MySQL
特别干的干货!!《Mycat》搭建分布式数据库中间件看他就够
根据官网的定义:Mycat是一个可以用于MySQL读写分离和高可用的中间件,一个模拟为MySQL Server的超级数据库,一个能平滑扩展支持1000亿大表的分布式数据库系统,一个可管控多种关系数据库的数据库路由器,一个平滑从关系数据升级到大数据的应用中间件。其前身是阿里的Cobar项目。介绍就不多说了,可以看官网http://www.mycat.org.cn/接下来我们实践吧。
176 1
|
SQL 存储 Cloud Native
数据库中间件漫谈——看看云时代,它会走向何方
数据库中间件漫谈——看看云时代,它会走向何方
532 0
数据库中间件漫谈——看看云时代,它会走向何方
|
存储 SQL 监控
老叶观点:MySQL开发规范之我见(更新版)
老叶观点:MySQL开发规范之我见(更新版)
145 0