MySql 锁机制

数据库 waitig 517℃ 百度已收录 0评论

根据对数据的操作类型可以将锁划分为读锁和写锁。
    读锁(共享锁):针对一份数据,多个读操作可以同时进行而不互相影响。
    写锁(排他锁):当前写操作没有完成前,会阻断其他写锁和读锁。

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

对MyISAM表进行操作,会有以下情况:
    1]:对MyISAM表的读操作(加读锁),不会阻塞其他进程对同一表的读请求,但会阻塞对同一表的写请求。只有当读锁释放后,才会执行其它进程的写操作。
    2]:对MyISAM表的写操作(加写锁),会阻塞其他进程对同一表的读和写操作,只有当写锁释放后,才会执行其它进程的读写操作。
    简而言之就是读锁会阻塞写,但是不会阻塞读。而写锁会阻塞读和写操作。


本文由【waitig】发表在等英博客
本文固定链接:MySql 锁机制
欢迎关注本站官方公众号,每日都有干货分享!
等英博客官方公众号
点赞 (0)分享 (0)