读写锁
读锁是共享的,或者说是互相不阻塞的。多个客户端在同一时刻可以读取统一资源,而互不干扰。写锁则是排他的,也就是说一个写锁会阻塞其他的写锁和读锁,这是出于安全策略的考虑,只有这样,才能确保在给定的时间内,只有一个用户能执行写入,并防止其他用户读取正在写入的统一资源。
锁粒度
表锁是MySQL中最基本的策略,并且是开销最小的策略,它会锁定整张表。一个用户在对表进行写操作前,需要先获得写锁,这会阻塞其他用户对该表的进行写操作。只有当没有写锁时,其他读取的用户才能获得读锁,读锁之间是相互不阻塞的。写锁也比读锁有着更高的优先级,因此一个写请求可能会被插入到读锁队列的前面。
行级锁可以最大程度的支持并发处理。行级锁只在存储引擎层实现,而MySQL服务器层没有实现。