MySQL数据库InnoDB存储引擎查询优化器实现的分析
一、 目的
分析MySQL数据库的查询优化器如何优化InnoDB存储引擎的查询语句:
(1). 如何实现查询优化的功能?
(2). 为了能实现查询优化,存储引擎需要做哪些方面的配合?
二、 测试准备
MySQL数据库软件版本:5.1.49-debug-log
测试用例的存储引擎:InnoDB
测试用例的表结构:
CREATE TABLE `nkeys` (
`c1` int(11) NOT NULL,
`c2` int(11) DEFAULT NULL,
`c3` int(11) DEFAULT NULL,
`c4` int(11) DEFAULT NULL,
`c5` int(11) DEFAULT NULL,
PRIMARY KEY (`c1`),
UNIQUE KEY `c2` (`c2`),
UNIQUE KEY `c3` (`c3`),
UNIQUE KEY `c4` (`c4`),
KEY `nkey1` (`c3`,`c5`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk
测试用例的数据:
insert into nkeys values (1,1,1,1,1);
insert into nkeys values (2,2,2,2,2);
insert into nkeys values (3,3,3,3,3);
insert into nkeys values (4,4,4,4,4);
insert into nkeys values (5,5,5,5,5);
三、 单表查询
(1). 单表RANGE查询
a) records_in_range函数分析
b) 单表range查询总结
(2). 单表UNIQUE查询
(3). 单表Unique查询总结
四、 多表查询
(2). BEST_ACCESS_PATH函数分析
a) 总流程分析
b) 代价估计分析
c) best_access_path函数流程
(4). 多表JOIN查询总结
建议继续学习:
- Mysql查询优化器浅析(上) (阅读:2503)
- MySQL数据库InnoDB存储引擎查询优化器实现的分析之单表查询 (阅读:2363)
- Mysql查询优化器浅析(下) (阅读:2051)
- MySQL数据库InnoDB存储引擎查询优化器实现的分析之单表unique查询 (阅读:1973)
- MySQL数据库InnoDB存储引擎查询优化器实现的分析之多表简单JOIN查询 (阅读:1849)
- MySQL数据库InnoDB存储引擎查询优化器实现的分析之optimizer_search_depth参数 (阅读:1776)
- MySQL数据库InnoDB存储引擎查询优化器实现的分析之附录 (阅读:1744)
- MySQL数据库InnoDB存储引擎查询优化器实现的分析之统计信息 (阅读:1549)
- MySQL数据库InnoDB存储引擎查询优化器实现的分析之best_access_path函数分析 (阅读:1445)
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:Eugene 来源: MySQLOPS 数据库与运维自动化技术分享
- 标签: 查询优化器
- 发布时间:2012-01-08 22:30:52
- Mysql查询优化器浅析(上)
- MySQL数据库InnoDB存储引擎查询优化器实现的分析之单表查询
- Mysql查询优化器浅析(下)
- MySQL数据库InnoDB存储引擎查询优化器实现的分析之单表unique查询
- MySQL数据库InnoDB存储引擎查询优化器实现的分析之多表简单JOIN查询
- MySQL数据库InnoDB存储引擎查询优化器实现的分析之optimizer_search_depth参数
- MySQL数据库InnoDB存储引擎查询优化器实现的分析之附录
- MySQL数据库InnoDB存储引擎查询优化器实现的分析之统计信息
- MySQL数据库InnoDB存储引擎查询优化器实现的分析之best_access_path函数分析
- [230] Go Reflect 性能
- [20] [译]Google Chrome中的高性能网
- [15] 关于Linux的文件系统cache
- [13] 在FreeNAS/BSD搭建基于Nginx+
- [12] PHP加速器 eaccelerator 缓存
- [12] Linux常用系统信息查看命令
- [11] 最近总结的一些技巧(vim,python,s
- [11] 精于图片处理的10款jQuery插件
- [10] PHP上传文件类型彻底判断方案及PHP+ng
- [10] base64_encode 和 urlenc