zoukankan      html  css  js  c++  java
  • mysql 查询优化执行过程


    mysql 查询优化执行过程

    一。extra:
    filesort
    using index
    using join buffer
    distinct


    二。type字段:
    null>system>const>eq_ref>ref>ref_or_null>index_merge>range>index>all

    null:优化阶段分析查询语句,不要查询索引和表
    systm:
    const:只查一行就可以查询到数据
    eq_ref:唯一性索引扫描,主键或唯一键索引扫描,只有一条记录与之匹配
    ref:非唯一索引扫描,1对多的混合体
    ref_or_null:类似ref,还可以搜素值为Null的情况
    index_merge:使用了索引合并的优化方法
    range:范围查询
    index:全索引扫描,只遍历索引树;full index scan
    all:扫描全表full table scan

    rows:扫描的行数

    select id name from t1 order by id limit 10000000,20; --order by id 主键,不要用重复键
    不带排序条件,删除id后,在插入旧id数据,可能造成分页的数据物理顺序和逻辑顺序不一致

    四。查询优化器的智能化:
    sql接口
    查询解析器
    查询优化器
    执行器:
    存储引擎
    buffer pool加载数据到缓冲池
    磁盘文件
    undo
    redo

    强制索引:force index(idx_create_time)

    select id from t2 where id>100000 order by createtime desc limit 0,20


    五。联表子查询:子查询里条件要有索引
    select id from t2 join (selct id from t2 order by createtime desc limit 10000,20) as t using(id)
    单路排序
    双路排序

  • 相关阅读:
    有效提高生产力的8个贴士
    如何提高团队编程水平
    PHPCMS V9使用中的一些心得体会
    2012全球SEO行业调查报告
    盘点SEO和SEM的优劣势
    DEDECMS 添加栏目图片
    2013年中国500强排行榜(公司名单及网址)
    十大淘宝搜索作弊行为
    利用curl抓取远程页面内容
    新浪,腾讯,淘宝,人人登陆
  • 原文地址:https://www.cnblogs.com/csj007523/p/15321927.html
Copyright © 2011-2022 走看看