14.3.5.1 Interaction of Table Locking and Transactions  表锁和事务的相互作用

LOCK TABLES 和UNLOCK TABLES  交互实用事务如下:

1. LOCK TABLES 不是事务安全的和隐式提交任何活动的事务 在尝试锁定表前

2.UNLOCK TABLES 隐式提交任何活动事务,但是只有如果LOCK TABLES 已经用于获得table locks.

比如, 下面的语句集,UNLOCK TABLES 释放全局锁 但是不会提交事务 因为没有表锁定是生效的。

FLUSH TABLES WITH READ LOCK;
START TRANSACTION;
SELECT ... ;
UNLOCK TABLES; 开始一个事务(例如,START TRANSACTION) 隐式的提交任何当前的事务和释放存在表锁 FLUSH TABLES WITH READ LOCK 需要一个全局的read lock ,不是table locks, 因此它不是服从于相同的行为作为LOCK TABLES 和UNLOCK TABLES 遵守表锁定和隐式提交。 比如, START TRANSACTION 不会释放全局read lock 正确的方式使用LOCK TABLES 和UNLOCK TABLES 在事务表,比如InnoDB 表, 是开始一个事务 设置autocommit = 0(不是START TRANSACTION)跟着lock tables, 不需要调用UNLCOK TABLES 直到你显示的提交事务 SET autocommit=0;
LOCK TABLES t1 WRITE, t2 READ, ...;
... do something with tables t1 and t2 here ...
COMMIT;
UNLOCK TABLES; 当你调用LOCK TABLES时,InnoDB 内部占用它自己的表锁,和MySQL 占用它自己的表锁。 InnoDB 释放它内部表锁 在下次提交时,但是MySQL 释放它的表锁,你需要调用UNLOCK TABLES. 你不能设置autocommit = 1, 因为InnoDB 释放它的内部的table lock 立即在调用LOCK TABLES之后, deadlocks 可以很轻易的发生。InnoDB 不需要获得内部表锁 如果 autocommit = 1, ROLLBACK does not release table locks.

14.3.5.1 Interaction of Table Locking and Transactions 表锁和事务的相互作用的更多相关文章

  1. 14.8.3 Physical Row Structure of InnoDB Tables InnoDB 表的物理行结构

    14.8.3 Physical Row Structure of InnoDB Tables InnoDB 表的物理行结构 一个InnoDB 表的物理行结构取决于在创建表指定的行格式 默认, Inno ...

  2. 学习笔记:ALTERing a Huge MySQL Table - 对一个超大表做alter调整

    Table of Contents The ProblemFuture SolutionsOverview of SolutionShortcutAssumptions/Restrictions/Co ...

  3. 14.7.1 Resizing the InnoDB System Tablespace InnoDB 系统表空间大小

    14.7.1 Resizing the InnoDB System Tablespace InnoDB 系统表空间大小 这个章节描述如何增加或者减少 InnoDB 系统表空间的大小 增加InnoDB ...

  4. 聊下图片滤镜,手机上的,lookup table(颜色查找表

    今天这里要介绍的是lookup table(颜色查找表),简而言之就是通过将每一个原始的颜色进行转换之后成为一个新的颜色. 打一个比方,比如原始颜色是红色(r:255,g:0,b:0),进行转换后变为 ...

  5. mysql学习之-show table status(获取表的信息)参数说明

    --获取表的信息mysql> show table status like 'columns_priv'\G;*************************** 1. row ******* ...

  6. 使用OPTIMIZE TABLE命令来整理表碎片实践

    操作环境:ubuntu 14.10   mysql 5.6.25 对含有BLOB或TEXT字段的表,若经常做修改或删除类的操作,需要定期执行OPTIMIZE TABLE命令来整理碎片. 1.creat ...

  7. 建立简单的Hash table(哈希表)by C language

    #define SIZE 1000 //定义Hash table的初始大小 struct HashArray { int key; int count; struct HashArray* next; ...

  8. Table 类(数据表基类)

    只修改数据表某条记录的部分字段(究极进化): public class TableHelper { private Dictionary<string, object> temp; pub ...

  9. alter table,复制, 单表查询

    修改表 语法:1. 修改表名      ALTER TABLE 表名                           RENAME 新表名; 2. 增加字段      ALTER TABLE 表名 ...

随机推荐

  1. SQLServer优化资料整理(二)

    存储过程编写经验和优化措施 一.适合读者对象:数据库开发程序员,数据库的数据量很多,涉及到对SP(存储过程)的优化的项目开发人员,对数据库有浓厚兴趣的人. 二.介绍:在数据库的开发过程中,经常会遇到复 ...

  2. I2C串行总线标准驱动程序(C51)-万能程序

    #include "reg51.h" #include "intrins.h" unsigned char SystemError; sbit SCL= P1^ ...

  3. WPF笔记(1.6 数据绑定)——Hello,WPF!

    原文:WPF笔记(1.6 数据绑定)--Hello,WPF! 这个一节都是在讲一个数据绑定的示例.功用:输入姓和名,点击Add按钮,ListBox增加一条记录,永远是字符串“name: nick”:L ...

  4. HDU5137 How Many Maos Does the Guanxi Worth(枚举+dijkstra)

    How Many Maos Does the Guanxi Worth Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 512000/5 ...

  5. Zookeeper 3、Zookeeper工作原理(详细)

    1.Zookeeper的角色 » 领导者(leader),负责进行投票的发起和决议,更新系统状态 » 学习者(learner),包括跟随者(follower)和观察者(observer),follow ...

  6. Unity 调用android插件

    1. Unity的Bundle Identifier必须和你的android报名一致 Activity和View的区别: Activity应该是一个展示页面,View是页面上一些按钮视图等等. 如何调 ...

  7. Android应用程序窗口(Activity)的测量(Measure)、布局(Layout)和绘制(Draw)过程分析

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8372924 在前面一篇文章中,我们分析了And ...

  8. Error 'Cannot add or update a child row: a foreign key constraint fails故障解决

    一大早的,某从库突然报出故障:SQL线程中断! 查看从库状态: mysql> show slave status\G Slave_IO_State: Waiting for master to ...

  9. winform —— 界面

    winform 界面简单介绍 窗体事件:理解为委托变量,指向哪个函数,就执行哪个函数.窗体:显示窗体的过程是一个通过模板造对象的过程.先走构造函数,构造函数中的InitializeComponent( ...

  10. js 创建html元素 渲染html元素

    var p1 = document.getElementById('p1'); //添加的元素类型及属性var newNode = document.createElement("input ...