在数据库系统中,每时每刻都会对数据库进行大量查询和数据操作,MySQL通过锁机制来进行并发控制
读写锁
- 在处理并发读或者写时,可以通过两种类型的锁来解决问题。即共享锁(shared lock)和拍他锁(exclusive lock),也叫读锁(read lock)和写锁(write lock)
读锁是共享的,互不相阻塞,多个客户在同一时刻可以同时读取同一资源,互不干扰;写锁是排他的,一个写锁会阻塞其它的写锁和读锁。
锁粒度
锁粒度就是在一定资源上,锁定的数据量。(锁定的数据量越少,系统并发程度越高)
MySQL 两种锁策略
- 表锁(table lock)
表锁是MySQL中开销最小的策略。他会锁定整张表,一个用户在对表进行写操作前会先获得写锁,阻塞其它用户对该表的所有读写操作,只有没有写锁时,其它读取的用户才能获得读锁。
*行级锁
行级锁可以最大程度地支持并发处理,同时也带来最大的开销。
网友评论