注册 登录
  • 欢迎访问"运维那点事",推荐使用Google浏览器访问,可以扫码关注本站的"微信公众号"。
  • 如果您觉得本站对你有帮助,那么可以扫码捐助以帮助本站更好地发展。

标签:MySQL InnoDB事务与锁

MySQL InnoDB

MySQL InnoDB锁信息阅读

下面主要分析一下InnoDB加锁的详细信息,主要用于分析一条语句的详细加锁结构以及加了什么锁。 记得先打开InnoDB monitor中的锁详细信息输出,只在MySQL下有用,在MariaDB下不起作用。 set GLOBAL innodb_status_output=ON; set GLOBAL innodb_status……继续阅读 »

彭东稳 1年前 (2017-10-25) 5474浏览 1评论 4个赞

MySQL InnoDB

MySQL死锁问题分析

线上某服务时不时报出如下异常(大约一天二十多次):“Deadlock found when trying to get lock;”。 Oh, My God! 是死锁问题。尽管报错不多,对性能目前看来也无太大影响,但还是需要解决,保不齐哪天成为性能瓶颈。为了更系统的分析问题,本文将从死锁检测、索引隔离级别与锁的关系、死锁成因、问题定位这五个方面来展开讨论。 ……继续阅读 »

彭东稳 2年前 (2017-05-27) 7134浏览 0评论 1个赞

MySQL

MySQL InnoDB自增锁和外键锁

一、自增长与锁 自增长在数据库中是非常常见的一种属性,也是很多DBA或开发人员首选的主键方式。在InnoDB存储引擎的内存结构中,对每个含有自增长值的表都有一个自增长计数器。当对含有自增长的计数器的表进行插入操作时,这个计数器会被初始化,执行如下的语句来得到计数器的值: select max(auto_inc_col) from……继续阅读 »

彭东稳 2年前 (2017-04-18) 6287浏览 0评论 2个赞

MySQL

MySQL分布式事务

一、分布式事务 在说分布式事务(XA)之前,可以先看一下“以交易系统为例,看分布式事务架构的五大演进”,阐述了分布式事务解决了什么问题? InnoDB存储引擎提供了对XA事务的支持,并通过XA事务来支持分布式事务的实现。分布式事务指的是允许多个独立的事务资源参与到一个全局的事务中。事务资源通常是关系型数据库系统,但也可以是其他类型的资源。全局事务要求在其中的……继续阅读 »

彭东稳 2年前 (2017-04-17) 7634浏览 0评论 2个赞

MySQL

以交易系统为例,看分布式事务架构的五大演进

一、概述 在支付、交易、订单等强一致性系统中,我们需要使用分布式事务来保证各个数据库或各个系统之间的数据一致性。举个简单的例子来描述一下这里数据一致性的含义。 程序员小张向女友小丽转账100人民币,转账过程是:先扣除小张100元,再为小丽的账户添加100元。 如果在转帐过程中,扣款操作和打款操作要么同时执行,要么同时都不执行,我们就认为转帐过……继续阅读 »

彭东稳 2年前 (2017-04-17) 4078浏览 1评论 0个赞

MySQL

理解悲观锁与乐观锁

在数据库的锁机制中介绍过,数据库管理系统(DBMS)中的并发控制的任务是确保在多个事务同时存取数据库中同一数据时不破坏事务的隔离性和一致性以及数据库的一致性。 乐观并发控制(乐观锁)和悲观并发控制(悲观锁)是并发控制主要采用的技术手段。无论是悲观锁还是乐观锁,都是人们定义出来的概念,可以认为是一种思想。其实不仅仅是数据库系统中有乐观锁和悲观锁的概念,像mem……继续阅读 »

彭东稳 2年前 (2017-03-07) 5675浏览 0评论 2个赞

MySQL

FLUSH TABLES WITH READ LOCK

一、FTWRL FLUSH TABLES WITH READ LOCK简称(FTWRL),该命令属于MySQL服务端命令,多用于备份的时候对全局表进行锁定来获取binlog信息。虽然持有时间很短,但容易被大操作堵塞造成备份不能完成。由于FTWRL总共需要持有两把全局的MDL(Metadata Data Lock)锁,并且还需要关闭所有表对象,因此这个命令的杀……继续阅读 »

彭东稳 2年前 (2016-12-09) 6732浏览 0评论 2个赞

MySQL

理解MySQL的MDL元数据锁

一、MDL锁的作用? MySQL DBA对于Waiting for table metadata lock肯定不会陌生,一般都是进行alter操作时被堵住了,导致了我们在show processlist 时,看到线程的状态是在等metadata lock。 为了在并发环境下维护表元数据的数据一致性,在表上有活动事务(显式或隐式)的时候,不可以对元数据进行写入……继续阅读 »

彭东稳 2年前 (2016-11-28) 8115浏览 0评论 5个赞

MySQL

MySQL InnoDB事务隔离级别(三)

一、事务的隔离级别 通过上面事务引发的数据不一致性,来说说事务的隔离级别。隔离性其实比想象的要复杂,简单来说,隔离性的作用就是保证在多个事务并行执行时,相互之间不会影响;比如一个事务的修改对其他事务是不可见的,好似多个事务是串行执行的。 在SQL 92标准定义了四个隔离级别。分别是READ UNCOMMITTED、READ COMMITTED、REPEATA……继续阅读 »

彭东稳 3年前 (2016-06-19) 4431浏览 3评论 1个赞