一、MySQL服务器逻辑架构
MySQL核心部分包括查询解析、分析、优化、缓存以及内置函数,所有跨存储引擎的功能,存储过程、触发器、视图等。
存储引擎负责MySQL中数据的存储和提取。服务器通过API和存储引擎进行通信。存储引擎API包含几十个底层函数,用于执行诸如“开始一个事务”或“根据主键查询数据”等操作,但存储引擎不会去解析SQL,不同存储引擎之间也不会相互通信,而只是简单地响应上层服务器的请求。
二、并发控制
1、读写锁
读锁是共享的,或者说是互不阻塞的,多个用户在同一时刻可以同时读取同一个资源,而互不打扰。
写锁则是排它锁,写锁会阻塞其它的写锁和读锁。
2、锁粒度
获取锁、检查锁是否被占用、释放锁等操作,都会增加系统的开销。
锁策略的意思就是在锁的开销和数据的安全性之间寻求平衡。
3、表锁
表锁是开销最小的锁,表锁 = 锁住整张表。