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查询优化器浅析(上) (阅读:2528)
- MySQL数据库InnoDB存储引擎查询优化器实现的分析之单表查询 (阅读:2469)
- Mysql查询优化器浅析(下) (阅读:2087)
- MySQL数据库InnoDB存储引擎查询优化器实现的分析之单表unique查询 (阅读:2089)
- MySQL数据库InnoDB存储引擎查询优化器实现的分析之多表简单JOIN查询 (阅读:2003)
- MySQL数据库InnoDB存储引擎查询优化器实现的分析之optimizer_search_depth参数 (阅读:1896)
- MySQL数据库InnoDB存储引擎查询优化器实现的分析之附录 (阅读:1851)
- MySQL数据库InnoDB存储引擎查询优化器实现的分析之统计信息 (阅读:1642)
- MySQL数据库InnoDB存储引擎查询优化器实现的分析之best_access_path函数分析 (阅读:1543)
扫一扫订阅我的微信号: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函数分析
- [66] Go Reflect 性能
- [65] Oracle MTS模式下 进程地址与会话信
- [64] 如何拿下简短的域名
- [59] android 开发入门
- [59] IOS安全–浅谈关于IOS加固的几种方法
- [58] 图书馆的世界纪录
- [58] 【社会化设计】自我(self)部分――欢迎区
- [53] 视觉调整-设计师 vs. 逻辑
- [47] 界面设计速成
- [46] 读书笔记-壹百度:百度十年千倍的29条法则