• 学习计划 mysql explain执行计划任务详解


    我们在之前已经找到了需要优化的SQL,但是怎么知道它的那些方面需要优化呢?

    explain就是为了这个使用的。

      explain显示了 mysql 如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。

    --

    用法:

      在你的SQL前面套上explain就好了。

    mysql> explain select * from rental;
    +----+-------------+--------+------------+------+---------------+------+---------+------+-------+----------+-------+
    | id | select_type | table  | partitions | type | possible_keys | key  | key_len | ref  | rows  | filtered | Extra |
    +----+-------------+--------+------------+------+---------------+------+---------+------+-------+----------+-------+
    |  1 | SIMPLE      | rental | NULL       | ALL  | NULL          | NULL | NULL    | NULL | 16008 |   100.00 | NULL  |
    +----+-------------+--------+------------+------+---------------+------+---------+------+-------+----------+-------+
    1 row in set, 1 warning (0.00 sec)
    

    --

      ID

      SELECT识别符。这是SELECT的查询序列号。不重要,需要注意的是,不要把id当成执行顺序,这并不准确。

    --

      SELECT_TYPE,TYPE 类型分为多种。

      SIMPLE 

        简单查询,指示非子查询和union的简单查询。

    --

       TABLE 

       也就是所查询的表名。

    --

      PARTITIONS

    --

      TYPE

      最重要的列,显示连接了哪种类型。

      从最好到最差的连接类型为:const > eq_reg > ref > range > index > ALL

    --

      POSSIBLE_KEYS

      显示可能应用在这张表上的索引,如果为空,则没有可能的索引。

    --

      KEY

      实际使用的索引,如为空,则没有使用索引。

    --

      KEY_LEN

      使用索引长度,在不损失精确性下,索引越短越好

    --

      REF

      显示索引的那一列被使用了,如果坑你,是一个常数。

    --

      ROWS

      mysql认为必须检查的,用来返回请求数据的行数。

    --

    这里只是做一个大纲,明天开始对各个细节开始做详细的学习。

  • 相关阅读:
    代码混淆那些事
    Windows10环境下 Nginx+ffmpeg自搭服务器制作RTMP直播流
    在Windows下搭建基于nginx的视频直播和点播系统
    windows下搭建基于nginx的rtmp服务器
    ijkplayer相关
    直播技术总结(三)ijkplayer的一些问题优化记录
    【.NET深呼吸】应用上下文(AppContext)
    【Win 10应用开发】自定义浮动层——Flyout
    【Win 10应用开发】AdaptiveTrigger在自定义控件中是可以触发的
    【.NET深呼吸】元组数据(Tuple)
  • 原文地址:https://www.cnblogs.com/25-lH/p/8626665.html
Copyright © 2020-2023  润新知