《高性能MySQL》
- 第一章 MySQL架构与历史
- 第二章 MySQL基准测试
- 第三章 服务器性能剖析
- 第四章 Schema与数据类型优化
- 第五章 创建高性能的索引
- 第六章 查询性能优化
- 第七章 MySQL高级特性
- 第八章 优化服务器设置
- 第九章 操作系统与硬件优化
- 第十章 复制
- 第十一章 可扩展的MySQL
- 第十二章 高可用性
- 第十三章 云端的MySQL
- 第十四章 应用层优化
- 第十五章 备份与恢复
- 第十六章 MySQL用户工具
- 附录
把目录全写出来只是单纯为了激励自己,不知道啥时候能全部看完这本书,有点厚。。。。
很多原理性的东西已经在《数据密集型应用设计》这本书里看过了
第一章 MySQL架构与历史
摘抄自该博客:MySQL逻辑架构
MySQL最重要、最与众不同的特性就是它的存储引擎架构,这种架构将:查询处理、其他系统任务、数据的存储与提取 三部分分离。所以,带来的好处就是可以在使用时根据性能、特性,以及其他需求来选择数据存储方式。
存储引擎架构分为三层,自上而下,分为第一层:连接层;第二层:服务层;第三层:引擎层。
第一层:连接层:
MySQL的最上层是连接服务,引入了线程池的概念,允许多台客户端连接。主要工作是:连接处理、授权认证、安全防护等。
连接层为通过安全认证的接入用户提供线程,同样,在该层上可以实现基于SSL 的安全连接。
第二层:服务层:
服务层用于处理核心服务,如标准的SQL接口、查询解析、SQL优化和统计、全局的和引擎依赖的缓存与缓冲器等等。所有的与存储引擎无关的工作,如过程、函数等,都会在这一层来处理。在该层上,服务器会解析查询并创建相应的内部解析树,并对其完成优化,如确定查询表的顺序,是否利用索引等,最后生成相关的执行操作。如果是SELECT 语句,服务器还会查询内部的缓存。如果缓存空间足够大,这样在解决大量读操作的环境中能够很好的提升系统的性能。
第三层:引擎层:
存储引擎层,存储引擎负责实际的MySQL数据的存储与提取,服务器通过API 与 存储引擎进行通信。不同的存储引擎功能和特性有所不同,这样可以根据实际需要有针对性的使用不同的存储引擎。