TOC

《高性能 MySQL》阅读笔记 1

BOOK

这本书买了都两年了,一直没有认真看,真是... 这次,我想花点时间把它从头到尾看一遍。

  • 概述部分
    • 第1章 MySQL 架构与历史 ...33页
  • 打造坚实的基础
    • 第2章 MySQL 基准测试 ...32页
    • 第3章 服务器性能剖析 ...43页
    • 第4章 Schema 与数据类型优化 ...32页
    • 第5章 创建高性能的索引
    • 第6章 查询性能优化
    • 第7章 MySQL 高级特性
  • 配置应用程序
    • 第8章 优化服务器设置
    • 第9章 操作系统与硬件优化
  • 作为基础设施组件的 MySQL
    • 第10章 复制
    • 第11章 可拓展的 MySQL
    • 第12章 高可用性
    • 第13章 云端的 MySQL
    • 第14章 应用层优化
    • 第15章 备份与恢复
  • 其他有用的主题
    • 第16章 MySQL 用户工具
    • 附录A MySQL 分支与变种
    • 附录B MySQL 服务器状态
    • 附录C 大文件传输
    • 附录D Explain
    • 附录E 锁的调试
    • 附录F 在 MySQL 中使用 Sphinx

注意

  1. 本书总是提到 Percona Server,因为几位作者是 Percona 公司的创始人和主要开发者。
    译者序部分提到作者有一个博客:https://mysqlperformanceblog.com,现在访问会跳转到 https://www.percona.com/blog/
  2. 译者是淘宝公司的 DBA。我相信,淘宝在 MySQL 方面还是很有经验的。
  3. 本书是面向 MySQL 5.1 和 5.5 的。
  4. 示例代码在 https://www.highperfmysql.com 上。

MySQL 服务器逻辑架构图

第一层是大多数 C/S 架构都有的架构,负责连接处理、授权认证、安全等。

第二层是 MySQL 核心服务:查询解析,分析,优化,缓存、内置函数。
所有跨存储引擎的功能都在这一层实现:存储过程,触发器,视图。

第三层是存储引擎,屏蔽底层文件操作,对上层提供数十个 API。
除了 InnoDB 会解析外键定义之外,引擎不会涉及 SQL 相关的事情。

连接管理

  1. 一个连接一个线程
  2. 线程层池插件(5.5+)
  3. 认证,SSL(X.509 证书),权限管理

优化与执行

  1. SQL => 解析树
  2. 优化:重写查询,决定表的顺序,选择合适的索引...
    用户有一些方法可以影响其决策过程。
  3. 通过 EXPLAIN 可以查看优化相关的一些信息。
  4. 优化器不关心存储引擎,但性能和存储引擎也有关系。
  5. SELECT 会检查查询缓存(Query Cache)。