§1. InnoDB行锁是通过给索引上的索引项加锁来实现的,这一点与Oracle不同,后者是通过在数据块中对相应数据行加锁来实现的。InnoDB这种行锁实现特点意味着:只有通过索引条件检索数据,InnoDB才使用行级锁,否则,InnoDB将使用表锁!§2.由于MySQL的行锁是针对索引加的锁,不是针...
分类:
数据库 时间:
2014-07-14 10:46:24
阅读次数:
239
--MySQL锁与MVCC--------------------2014/06/29myisam表锁比较简单,这里主要讨论一下innodb的锁相关问题。innodb相比oracle锁机制简单许多,锁的类型有如下几类:Ashared (S) lockpermits the transaction t...
分类:
数据库 时间:
2014-07-01 00:13:56
阅读次数:
354
如何加锁锁定表的语法: LOCK TABLES tbl_name [AS alias] {READ [LOCAL] | [LOW_PRIORITY] WRITE} [, tbl_name [AS alias] {READ [LOCAL] | [LOW_PRIORITY] WRITE}] ...解.....
分类:
数据库 时间:
2014-06-18 18:40:01
阅读次数:
336
MySQL为了保护数据字典元数据,使用了metadata lock,即MDL锁,保证在并发的情况下,结构变更的一致性。MDL锁的加锁模式和源码上的组织上和上一篇blog中MySQL表锁的实现方式一致,都采用了【mutex+condition+queue】来实现并发,阻塞,唤醒的控制。下面就来看看MD...
分类:
数据库 时间:
2014-06-16 13:12:51
阅读次数:
383
MySQL锁不同的存储引擎支持不同的锁:MyISAM和MEMORY采用的是表级锁BDB采用的是页面锁,也支持表级锁InnoDB默认采用行级锁,也支持表级锁3种锁类型:表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低行级锁:开销大,加锁慢,会出现死锁,锁定粒度最小,发...
分类:
数据库 时间:
2014-06-15 22:14:44
阅读次数:
373
上一篇介绍了MySQL源码中保护内存结构或变量的锁,这里开始介绍下MySQL事务中的表锁。注1: 在表锁的实现上面,使用【mutex+condition+queue】的结构实现并发,阻塞,唤醒的表锁功能。注2: 本文进行的一些实验,重要的配置项:1. autocommit=02. tx_isol.....
分类:
数据库 时间:
2014-06-15 09:36:39
阅读次数:
250
MySQL的锁: MySQL内部有很多种类的锁,按照用途不同,可以分为两类: 1.
保护内存结构的锁 server层对于线程共享的变量,基本上使用mutex,rwlock来做保护。 innodb层会增加使用spinlock自旋锁 2.
提供或者保...
分类:
数据库 时间:
2014-06-12 13:27:02
阅读次数:
293
锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的
计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一
个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据...
分类:
数据库 时间:
2014-06-07 11:11:46
阅读次数:
438
事务就是一个逻辑工作单元的一系列步骤。事务是用来保证数据操作的安全性
事务的特征:
Atomicity(原子性)
Consistency(稳定性,一致性)
Isolation(隔离性)
Durability(可靠性)
【事务只针对对数据数据产生影响的语句有效】
show engines //查看mysql锁支持的数据引擎
MyISAM不支持事物,InnoDB支持事物
默认...
分类:
数据库 时间:
2014-06-01 09:39:13
阅读次数:
320