mysql innodb 查询优化实现分析专业版

mysql innodb 查询优化实现分析专业版

ID:9389687

大小:120.58 KB

页数:24页

时间:2018-04-29

mysql innodb 查询优化实现分析专业版_第1页
mysql innodb 查询优化实现分析专业版_第2页
mysql innodb 查询优化实现分析专业版_第3页
mysql innodb 查询优化实现分析专业版_第4页
mysql innodb 查询优化实现分析专业版_第5页
资源描述:

《mysql innodb 查询优化实现分析专业版》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、MysqlInnodb查询优化实现分析以下文字由808影视www.808ys.com收集提供于影视网何登成目录1目地22测试准备23单表查询33.1单表range查询33.1.1records_in_range函数分析53.1.2best_access_path函数(单表)63.1.3单表range查询总结83.2单表unique查询93.2.1单表Unique查询总结94多表查询104.1多表简单join104.2best_access_path函数分析124.2.1总流程分析124.2.2代价估计分析124.2.3best_access_path函数

2、流程134.3optimizer_search_depth参数154.4多表join查询总结155统计信息165.1统计信息收集165.2统计信息更新175.3统计信息收集总结186查询优化总结187参考文献18附录一19附录二20附录三21附录四221目地分析mysql+innodb如何实现查询优化?实现查询优化,存储引擎需要做哪些方面地配合?2测试准备mysqlselectversion();5.1.49-debug-loginnodb--------表定义---------+-------+-----------------------------

3、-

4、Table

5、CreateTable+-------+------------------------------

6、nkeys

7、CREATETABLE`nkeys`(`c1`int(11)NOTNULL,`c2`int(11)DEFAULTNULL,`c3`int(11)DEFAULTNULL,`c4`int(11)DEFAULTNULL,`c5`int(11)DEFAULTNULL,PRIMARYKEY(`c1`),UNIQUEKEY`c2`(`c2`),UNIQUEKEY`c3`(`c3`),UNIQUEKEY`c4`(`c4`),KEY`nkey

8、1`(`c3`,`c5`))ENGINE=InnoDBDEFAULTCHARSET=gbk

9、+-------+----------------------------------数据----insertintonkeysvalues(1,1,1,1,1);insertintonkeysvalues(2,2,2,2,2);insertintonkeysvalues(3,3,3,3,3);insertintonkeysvalues(4,4,4,4,4);insertintonkeysvalues(5,5,5,5,5);1单表查询1.1单表range查询1)s

10、elect*fromnkeyswherec3>3;不能进行索引覆盖扫描indexrangescan2)selectc3fromnkeyswherec3>3;可以进行索引覆盖扫描indexonlyrangescan调用流程:msyql_select->JOIN::optimize->make_join_statistics->0.sql_select.cc::get_quick_record_count->opt_range.cc::SQL_SELECT::test_quick_select–>ha_innobase::scan_time->get_key

11、_scans_params->check_quick_select–>Opt_range.cc::check_quick_keys->ha_innobase::records_in_range->get_index_only_read_time->ha_innobase::read_time->get_best_ror_intersect->get_best_covering_ror_intersect->a)ha_innobase::scan_time函数,给出全表扫描read_timei.scan_time=(double)records/TIME_

12、FOR_COMPARE+1;1.mysql层面,返回一个record需要地时间(CPU时间)2.TIME_FOR_COMPARE=5ii.return(double)(prebuilt->table->stat_clustered_index_size(聚簇索引叶页面数);1.innodb层面,全表扫描时间,用读取地page数计算(IO时间)2.由于innodb是索引组织表,用不到page地预读,因此一次读取一个pageiii.table_read_time=ha_innobase::scan_time()+scan_time+1;1.全表扫描总时间=i

13、nnodb读取数据块时间+mysql比较记录时间+12.测试中:table_re

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。