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查询优化器浅析(上) (阅读:2502)
- MySQL数据库InnoDB存储引擎查询优化器实现的分析之单表查询 (阅读:2362)
- Mysql查询优化器浅析(下) (阅读:2051)
- MySQL数据库InnoDB存储引擎查询优化器实现的分析之单表unique查询 (阅读:1971)
- MySQL数据库InnoDB存储引擎查询优化器实现的分析之多表简单JOIN查询 (阅读:1845)
- MySQL数据库InnoDB存储引擎查询优化器实现的分析之optimizer_search_depth参数 (阅读:1775)
- MySQL数据库InnoDB存储引擎查询优化器实现的分析之附录 (阅读:1743)
- MySQL数据库InnoDB存储引擎查询优化器实现的分析之统计信息 (阅读:1546)
- 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函数分析
- [602] 招聘技巧一二
- [17] 我的git笔记
- [16] 密度聚类算法之OPTICS
- [16] 在ssh服务里使用chroot
- [15] 豆瓣是啥?
- [15] 数据分析中常用的数据模型
- [14] Android用户界面设计:表格布局
- [14] jQuery性能优化指南
- [13] 一次神奇的MySQL优化
- [13] 配合jquery实现异步加载页面元素