您的位置:首页 > 数据库 > MySQL

MySql 锁机制

2017-11-25 11:19 78 查看
根据对数据的操作类型可以将锁划分为读锁和写锁。

读锁(共享锁):针对一份数据,多个读操作可以同时进行而不互相影响。

写锁(排他锁):当前写操作没有完成前,会阻断其他写锁和读锁。

根据对数据操作的粒度划分可以划分为表锁和行锁。

表锁(偏读):偏向于MyISAM 存储引擎,开销小,加锁快,无死锁,锁颗粒度大,发生所冲突的概率很高,并发度很低。MyISAM 的读写调度是写优先,这也是MyISAM 为什么不适合做写为主的表的引擎,因为写锁后,其他线程不能做任何的操作,大量的更新数据会使查询很难得到锁,从而造成阻塞。

对MyISAM表进行操作,会有以下情况:

1]:对MyISAM表的读操作(加读锁),不会阻塞其他进程对同一表的读请求,但会阻塞对同一表的写请求。只有当读锁释放后,才会执行其它进程的写操作。

2]:对MyISAM表的写操作(加写锁),会阻塞其他进程对同一表的读和写操作,只有当写锁释放后,才会执行其它进程的读写操作。

简而言之就是读锁会阻塞写,但是不会阻塞读。而写锁会阻塞读和写操作。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: