标签:: 事务

0

高性能MySQL之多版本并发控制MVCC(六)

锁的代价前面一节讲到过死锁,以及事务型数据库中需要经常地检测死锁的问题,提出的对应解决方案就是使用行级锁,将需要锁定的行锁定起来。那么,这里就不得不说到锁的代价了,其实锁定一行的代价还是很高的,因为它对其它事务来说就是在短期内不可用的了,这对数据库的吞吐量来说是极大的损害! 那么有没有什么方法能有效地减少锁的的创建呢?这就是我们接下来要介绍的MVCC啦。MVCC其实是行级锁的一个变种,但是很多情况

0

高性能MySQL之死锁(五)

死锁本文聊一聊事务中的死锁现象。死锁的定义是什么?死锁是指两个或者多个事务在同一个资源上相互占用,并请求锁定对方占用的资源,从而导致恶性循环的现象。当多个事务试图以不同的顺序锁定相同的资源时,就很容易产生死锁。或者是多个事务同时锁定某一个相同的资源时,也非常容易产生死锁哦! StockPrice表实例分析假设现在有两个事务同时针对StockPrice表进行相关的操作,如下: 事务一: 1234ST

0

高性能MySQL之事务隔离级别(四)

事务概念回顾这里再回顾一下事务的概念:事务一组原子性的SQL查询。事务处理系统一般包括四个特性ACID(原子性Atomicity,一致性Consistency,隔离性Isolation以及持久性Durability)。今天重点聊一聊这里面的隔离性Isolation。 隔离级别隔离性远比想象的要复杂很多,因为涉及到系统各个事务之间的数据更新操作可见性。一般来说,隔离级别会分为四种: READ UN

0

高性能MySQL之事务(三)

事务先说说什么是事务?不同的同学对这个概念有很多不同的理解。我以前对事务就有很长时间的不理解,单纯认为事务是一件很复杂的事情,到底多复杂,我也不清楚,总之就是需要处理各种操作的事情。现在给出一个比较准确的定义哈,数据库中的事务就是指一组原子性的SQL查询,或者说一个独立的工作单元。这句话怎么理解呢?你一共要执行一些SQL语句去完成某个操作对吧,但是完成的过程当中,执行到一半的时候,某个语句失败了,