mysql order by索引优化--

mysql order by索引优化--

ID:24336469

大小:50.50 KB

页数:3页

时间:2018-11-13

mysql order by索引优化--_第1页
mysql order by索引优化--_第2页
mysql order by索引优化--_第3页
资源描述:

《mysql order by索引优化--》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、MySQLOrderBy索引优化>>  在一些情况下,MySQL可以直接使用索引来满足一个ORDERBY或GROUPBY子句而无需做额外的排序。尽管ORDERBY不是和索引的顺序准确匹配,索引还是可以被用到,只要不用的索引部分和所有的额外的ORDERBY字段在ySQLOrderBy  下列的几个查询都会使用索引来解决ORDERBY或GROUPBY部分:SELECT*FROMt1ORDERBYkey_part1,key_part2,...;SELECT*FROMt1t1t1ORDERBYkey_part1DE

2、SC,key_part2DESC;SELECT*FROMt1ySQLOrderBy  在另一些情况下,MySQL无法使用索引来满足ORDERBY,尽管它会使用索引来找到记录来匹配t1ORDERBYkey1,key2;  *在非连续的索引键部分上做ORDERBY:SELECT*FROMt1t1ORDERBYkey_part1DESC,key_part2ASC;*用于搜索记录的索引键和做ORDERBY的不是同一个:SELECT*FROMt1ySQL是否在查询中使用了索引。如果Extra字段的值是Usingfil

3、esort,则说明MySQL无法使用索引。详情请看7.2.1EXPLAINSyntax(GetInformationAboutaSELECT)。当必须对结果进行排序时,MySQL4.1以前它使用了以下filesort算法:  1.根据索引键读取记录,或者扫描数据表。那些无法匹配ERGEBUFF(7)个区域的块保存在另一个临时文件中。重复这个操作,直到所有在第一个文件的块都放到第二个文件了。  6.重复以上操作,直到剩余的块数量小于MERGEBUFF2(15)。  7.在最后一次多重合并时,只有记录的指针(排

4、序索引键的最后部分)写到结果文件中去。  8.通过读取结果文件中的记录指针来按序读取记录。想要优化这个操作,MySQL将记录指针读取放到一个大的块里,并且使用它来按序读取记录,将记录放到缓冲中。缓冲的大小由系统变量read_rnd_buffer_size的值而定。这个步骤的代码在源文件`sql/records.cc'中。  这个逼近算法的一个问题是,数据库读取了2次记录:一次是估算ySQL4.1及更新版本中,filesort优化算法用于记录中不只包括索引键值和记录的位置,还包括查询中要求的字段。这么

5、做避免了需要2次读取记录。改进的filesort算法做法大致如下:  1.跟以前一样,读取匹配ySQL能否使用索引而非额外的排序过程。如果不能使用索引,可以试着遵循以下策略:  *增加sort_buffer_size的值。  *增加read_rnd_buffer_s12下一页>>>>这篇文章来自..,。ize的值。  *修改tmpdir,让它指向一个有很多剩余空间的专用文件系统。  如果使用MySQL4.1或更新,这个选项允许有多个路径用循环的格式。各个路径之间在Unix上用冒号(':')分

6、隔开来,在Windows,NetWare以及OS/2上用分号(';')。可以利用这个特性将负载平均分摊给几个目录。注意:这些路径必须是分布在不同物理磁盘上的目录,而非在同一个物理磁盘上的不同目录。上一页12>>>>这篇文章来自..,。

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

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

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