• sql


    select update 

    链接查询的执行顺序

    查询扫描的数据行数

    ID 列

    ID列中的数据为一组数字,表示执行select语句的顺序

    ID值相同是,执行顺序由上及下

    explain

    查询计划,

    SELECT_TYPE列

    simple  简单查询

    union   union 操作的第二个或是以后的查询的值为union

    dependent  union 当union作为子查询时,第二或是第二个后的查询的select_type值

    union  result union 产生的结果集

    derived  出现在from子句中的子查询

    输出数据行所在的表的名称

    union M.N 

    分区表partitions 列

    TYPE 列

    system 这是const链接类型的一个特例,当查询的表只有一行时使用

    const 表中有且只有一个匹配的行时使用,如对主键或是唯一索引的查询 这是效率最高的链接方式

    eq_ref 唯一索或主键引查找,对于每个索引键,表中只有一条记录与之匹配

    ref 非唯一索引查找,返回匹配某个单独值的所有行

    ref_or_null 类似于ref类型的查询,但是附加了对null值列的查询

    index_mer 该链接类型表示使用了索引和并优化方法。

    ge

    range 索引范围扫描,常见于between > < 这样的查询条件

    index FULL indexScan全索引扫描,同ALL的区别是,遍历的索引树

    ALL FULL TABLE Scan 全表扫描,这是效率最差的链接方式

    Extra 列

    distinct 优化distinct 操作,再找到第一匹配的元组后即停止找同样值的动作

    Not exists 使用 not exists 来优化查询

    Using filesort 使用额外操作进行排序,通常会出现在order by 或group by 查询中

    Using index  使用了覆盖索引进行查询

    Using temporary MySQL 需要使用临时表来处理查询,常见于排序,子查询,和分组查询

    Using where 需要在mysql服务器层使用where条件来过滤数据

    select tables optimized away 直接通过索引来获取生育局,不用访问表

    possible_keys列

    肯能会使用的索引

    ken_len 列

    表示索引字段的最大可能长度

    ref 列

    rows列

    表示mysql通过索引统计信息,估算的所需读取的行数

    rows 值的大小是个统计抽样结果,并不十分准确

    Filtered列

    表示返回结果的行数占需读取行数的百分比

    执行计划的限制

    常见的优化例子

    慢查询日历

    启用mysql慢查日志

    set global slow_query_log_file = /sql_log/slow_log.log;

    set global log_queries_not_using_indexes = on;

    set global long_query_time = 0.001;

    set global low_query_log = on;

  • 相关阅读:
    Hadoop编译源码
    大数据生态体系
    crontab任务调度
    yum概述配置
    如何识别图像边缘
    神经网络入门
    Linux命令locate
    B1299 [LLH邀请赛]巧克力棒 博弈论
    B1090 [SCOI2003]字符串折叠 区间dp
    B1068 [SCOI2007]压缩 区间dp
  • 原文地址:https://www.cnblogs.com/simadongyang/p/10383311.html
Copyright © 2020-2023  润新知