分享

Mysq查询优化器

 收云轩 2017-05-22

1:  Mysq查询优化器采用了“选取-投影-联结”策略来处理查询,即先根据有关的限制条件进行选取(select操作)以减少将要处理的元祖的个数,再进行投影(对应

关系代数里的投影操作)以减少被选取元祖里的属性(字段)的个数,最后根据连接条件生成最终的查询结果。

   它使用的规则如下:

     * 通过计算where子句里的表达式来横向排除多余的数据

     *只保留在属性(字段)清单里列出来的,以及在最后执行联结子句时还需要用到的属性(字段),其他数据全部排除。

     *根据联结条件生成最终的查询结果


  2:缓存和缓冲区

   2.1 表缓存

        表缓存是为了最大限度的减少打开、读取和关闭表(磁盘上的FRM文件)的开销而创建的。因此,表缓存的主要用途就是把关于表的元数据保存在内存里。这样可以大大加快有关线程读取表结构信息的速度而无需每次都打开文件。

   2.2 记录缓存

    是为了加快存储引擎的顺序读性能而创建的。记录缓存只用在表扫描期间。记录缓存可以大幅度的提高顺序读/写(称为引用的局域性)的性能,所以它通常与MyISAM存储引擎配合使用


   2.3 键缓存

     其实就是一个用来缓存索引数据的缓冲区,其内容是一个来自索引文件(B-)树的数据块,只有MyISAM表(磁盘上的.MYI文件)才能使用键缓存,索引本身被封装在键缓存结构里,这些结构在内存里被存储为一个链表。


  2.4 权限缓存

      用来存放用户账户的授权数据

  

2.5 主机名缓存

      是另外一种辅助性的缓存机制,与权限缓存很相似。








 




    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多