在数据库中数据也是一种供许多用户共享的资源,如何保证数据并发访问的一致性,有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素;
锁对数据库而言显得尤其重要,也更加复杂...Mysql中的锁
Mysql的锁机制比较简单
其最显著的特点是不同的存储引擎支持不同的锁机制
比如:
MyISAM和Memory存储引擎采用的是表级锁(table-level locking)
...InnoDB存储引擎既支持行级锁(row-level locking),也支持表级锁,但是默认情况下采用的是行级锁
表级锁:开销小,加锁快;不会出现死锁,锁定粒度大,发生锁冲突的概率最高,并发度最低....,这个Session可以查询锁定表中的记录,但更新或访问其他表都会提示报错;
另一个Session可以查询表中的记录,但更新会出现锁等待
对MyISAM表的写操作,则会阻塞其他用户对同一表的读和写操作...对MyISAM表的写操作,当前Session可以对本表做CRUD,但对其他表操作会报错
InnoDB的行锁
在Mysql中的InnoDB存储引擎支持行锁
行锁:
共享锁又称:读锁,当某一个事物对某几行上锁时