MySQL逻辑架构
image.png- 优化与执行
对于SELECT语句,在解析査询之前,服务器会先检査査询缓存(Query Cache),如果能够在其中找到对应的査询,服务器就不必再执行査询解析、优化和执行的整个过程,而是直接返回査询缓存中的结果集。
- 并发控制
- 读写锁
解决这类经典问题的方法就是并发控制,其实非常简单。在处理并发读或者写时,可以通过实现一个由两种类型的锁组成的锁系统来解决问题。这两种类型的锁通常被称为共享锁( shared lock)和排他锁 ( exclusive lock),也叫读锁( read lock)和写锁 ( writelock)。
.
读锁是共享的,或者说是相互不阻塞的。多个客户在同一时刻可以同时读取同一个资源,而互不干扰。
写锁则是排他的,也就是说一个写锁会阻塞其他的写锁和读锁,这是出于安全策略的考虑,只有这样,才能确保在给定的时间里,只有一个用户能执行写入,并防止其他用户读取正在写入的同一资源。
- 锁粒度:锁定的数据量越少,则系统的并发程度越高。锁越多,系统对于锁的开销也越高。由MySQL的存储引擎实现自己的锁策略、锁粒度
- 表锁
- 行级锁
网友评论