您的位置:1010cc时时彩经典版 > 1010cc安卓版 > 1010cc时时彩经典版:详细介绍,mysql查询优化相关

1010cc时时彩经典版:详细介绍,mysql查询优化相关

发布时间:2019-10-22 20:01编辑:1010cc安卓版浏览(171)

    MySQL EXPLAIN命令是询问品质优化不可缺点和失误的豆蔻梢头有个别,该文重要疏解explain命令的利用及有关参数表达。

    原文:

    Mysql Explain 这里做一个素材的体贴入妙整治。

     使用EXPLAIN语句检查优化器操作 ---- ------------- ---------- ------- --------------- ------ --------- ------ ------ ----------------- | id | select_type | table | type | possible_keys | key | key_len| ref | rows | Extra ---- ------------- ---------- ------- --------------- ------ --------- ------ ------ ----------------- | 1 |SIMPLE | car_info | range | name | name | 768 | NULL | 9 | Using where; Using index | ---- ------------- ---------- ------- --------------- ------ --------- ------ ------ ----------------
    EXPLAIN输出解释
    select_type 有如下三种等级次序: SIMPLE:未利用连接查询或然子查询的简易select语句 explain select * from car_info;
    P福睿斯IMAQX56Y:最外层的select语句 explain select * from (select name from car_info where name like 'Cadillac%') as a;
    ---- ------------- ------------ ------- --------------- ------ --------- ------ ------ -------------
    | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
    ---- ------------- ------------ ------- --------------- ------ --------- ------ ------ ---------------
    | 1 | PRIMARY | <derived2> | ALL | NULL | NULL | NULL | NULL | 9 | |
    | 2 | DERIVED | car_info | range | name | name | 768 | NULL | 9 | Using where; Using index |
    ---- ------------- ------------ ------- --------------- ------ --------- ------ ------ ---------------
    UNION:union中的第叁个,或后边的select语句 explain select name from car_info where id =100 union select name from web_car_brands where id =5; ------ -------------- ---------------- ------- --------------- --------- --------- ------- ------ -- | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | ------ -------------- ---------------- ------- --------------- --------- --------- ------- ------ --- | 1 | PRIMARY | car_info | const | PRIMARY | PRIMARY | 8 | const | 1 | | | 2 | UNION | web_car_brands | const | PRIMARY,id | PRIMARY | 4 | const | 1 | | | NULL | UNION RESULT | <union1,2> | ALL | NULL | NULL | NULL | NULL | NULL | | ------ -------------- ---------------- ------- --------------- --------- --------- ------- ------ ---

    EXPLAIN Output Columns

    列名 说明
    id 执行编号,标识select所属的行。如果在语句中没子查询或关联查询,只有唯一的select,每行都将显示1。否则,内层的select语句一般会顺序编号,对应于其在原始语句中的位置
    select_type 显示本行是简单或复杂select。如果查询有任何复杂的子查询,则最外层标记为PRIMARY(DERIVED、UNION、UNION RESUlT)
    table 访问引用哪个表(引用某个查询,如“derived3”)
    type 数据访问/读取操作类型(ALL、index、range、ref、eq_ref、const/system、NULL)
    possible_keys 揭示哪一些索引可能有利于高效的查找
    key 显示mysql决定采用哪个索引来优化查询
    key_len 显示mysql在索引里使用的字节数
    ref 显示了之前的表在key列记录的索引中查找值所用的列或常量
    rows 为了找到所需的行而需要读取的行数,估算值,不精确。通过把所有rows列值相乘,可粗略估算整个查询会检查的行数
    Extra 额外信息,如using index、filesort等

              

    一.语法

    DEPENDENT UNION:union中的第三个或后边的色了理念语句,决定于外面包车型大巴询问
    mysql> explain select * from t3 where id in (select id from t3 where id=3952602 union all select id from t3) ;
    ---- -------------------- ------------ -------- ------------------- --------- --------- ------- ------ ------
    | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
    ---- -------------------- ------------ -------- ------------------- --------- --------- ------- ------ --
    | 1 | PRIMARY | t3 | ALL | NULL | NULL | NULL | NULL | 1000 | Using where
    | 2 | DEPENDENT SUBQUERY | t3 | const | PRIMARY,idx_t3_id | PRIMARY | 4 | const | 1 | Using index |
    | 3 | DEPENDENT UNION | t3 | eq_ref | PRIMARY,idx_t3_id | PRIMARY | 4 | func | 1 | Using where; Using index |
    |NULL | UNION RESULT | <union2,3> | ALL | NULL | NULL | NULL | NULL | NULL | |
    ---- -------------------- ------------ -------- ------------------- --------- --------- ------- ------ -

    id

    id是用来家家户户标志整个查询中SELELCT 语句的,在嵌套查询中id越大的口舌越先实行。该值只怕为NULL,借使那风流罗曼蒂克行用来注脚的是别的行的协同结果。

             

    explain < table_name >

    UNION RESULT:union的结果 explain select name from car_info where id =100 union select name from web_car_brands where id =5; ------ -------------- ---------------- ------- --------------- --------- --------- ------- ------ ----- | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | ------ -------------- ---------------- ------- --------------- --------- --------- ------- ------ -- | 1 | PRIMARY | car_info | const | PRIMARY | PRIMARY | 8 | const | 1 | | | 2 | UNION | web_car_brands | const | PRIMARY,id | PRIMARY | 4 | const | 1 | | | NULL | UNION RESULT | <union1,2> | ALL | NULL | NULL | NULL | NULL | NULL | | ------ -------------- ---------------- ------- --------------- --------- --------- ------- ------ ----
    SUBQUE本田UR-VY:子查询中的第二个SELECT语句 explain select name from car_info where id = (select id from web_car_series where id = 5); ---- ------------- ---------------- ------- --------------- --------- --------- ------- ------ ----- | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | ---- ------------- ---------------- ------- --------------- --------- --------- ------- ------ ------ | 1 | PRIMARY | car_info | const | PRIMARY | PRIMARY | 8 | const | 1 | | | 2 | SUBQUERY | web_car_series | const | PRIMARY | PRIMARY | 4 | | 1 | Using index | ---- ------------- ---------------- ------- --------------- --------- --------- ------- ------ -----

    select_type

    代表查询的项目

    类型 说明
    simple 简单子查询,不包含子查询和union
    primary 包含union或者子查询,最外层的部分标记为primary
    subquery 一般子查询中的子查询被标记为subquery,也就是位于select列表中的查询
    derived 派生表——该临时表是从子查询派生出来的,位于form中的子查询
    union 位于union中第二个及其以后的子查询被标记为union,第一个就被标记为primary如果是union位于from中则标记为derived
    union result 用来从匿名临时表里检索结果的select被标记为union result
    dependent union 顾名思义,首先需要满足UNION的条件,及UNION中第二个以及后面的SELECT语句,同时该语句依赖外部的查询
    subquery 子查询中第一个SELECT语句
    dependent subquery 和DEPENDENT UNION相对UNION一样

    在平凡工作中,大家会不经常会开慢查询去记录一些执行时间十分久的SQL语句,搜索这一个SQL语句并不意味完事了,些时我们日常用到explain这几个命令来查阅二个这一个SQL语句的进行安排,查看该SQL语句有未有选拔上了目录,有未有做全表扫描,这都能够通过explain命令来查阅。所以大家长远驾驭MySQL的依靠开支的优化器,还是可以够获得众多也许被优化器思索到的探访计策的内情,以致当运营SQL语句时哪个种类政策猜想会被优化器采纳。(QEP:sql生成贰个推行安排query Execution plan)

    例如: explain select * from t3 where id=3952602;

    DEPENDENT SUBQUEENVISIONY:子查询中的第贰个SELECT,决计于外面包车型客车询问
    explain select name from car_info where id in (select id from web_car_series where id = 5); ---- -------------------- ---------------- ------- --------------- --------- --------- ------- ------ - | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | ---- -------------------- ---------------- ------- --------------- --------- --------- ------- ------ | 1 | PRIMARY | car_info | index | NULL | name | 768 | NULL | 145 | Using where; Using index | | 2 | DEPENDENT SUBQUERY | web_car_series | const | PRIMARY | PRIMARY | 4 | const | 1 | Using index | ---- -------------------- ---------------- ------- --------------- --------- --------- ------- -----

    table

    对应行正在访问哪贰个表,表名只怕外号

    • 涉及优化器会为查询采用事关顺序,左边深度优先
    • 当from中有子查询的时候,表名是derivedN的形式,N指向子查询,也正是explain结果中的下一列
    • 当有union result的时候,表名是union 1,2等的情势,1,2表示涉足union的query id

    瞩目:MySQL对待那个表和普通表一样,不过那一个“一时表”是一贯不其余索引的。

    1010cc时时彩经典版 1

    二.explain输出解释

    DELacrosseIVED:在from列表中满含子查询,mysql会递归的进行该子查询,并把结果放在一时表中
    explain select * from (select name from car_info where id = 100) a; ---- ------------- ------------ -------- --------------- --------- --------- ------ ------ - | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | ---- ------------- ------------ -------- --------------- --------- --------- ------ ------ - | 1 | PRIMARY | <derived2> | system | NULL | NULL | NULL | NULL | 1 | | | 2 | DERIVED | car_info | const | PRIMARY | PRIMARY | 8 | | 1 | | ---- ------------- ------------ -------- --------------- --------- --------- ------ ------ -
    type列: MySQL 在表里找到所需行的办法包括如下几张(由左至右,由最差到最佳): All-->index-->range-->ref -->eq_ref-->const,system -->null
    ALL:举行全部据表扫描 index:遵照索引的次序扫描表,先读索引,然后读取具体的数据行,其实照旧全表扫描,好处在于不用排序,依据索引的顺序 range:根据有些范围读取数据行 ref:非唯意气风发性索引访问eq_ref:使用唯风流浪漫性索引访谈(主键或许唯大器晚成性索引) const:最三唯有贰个相配行,const常用于数值比较如 primary key
    null:在优化进度中曾经获得结果,不需求访谈表或许索引 如:explain select min(id) from car_info;
    possible_keys列: possible_keys列建议MySQL能利用哪个索引在该表中找到行。注意,该列完全部独用立于EXPLAIN输出所示的表的次第。那代表在possible_keys中的某个键实际上不能够按生成的表次序使用。

    type

    type展现的是访谈类型,是较为关键的二个目的,结果值从好到坏依次是:
    system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > ALL ,常常的话,得保障查询最少到达range品级,最棒能达到ref。

    类型 说明
    All 最坏的情况,全表扫描
    index 和全表扫描一样。只是扫描表的时候按照索引次序进行而不是行。主要优点就是避免了排序, 但是开销仍然非常大。如在Extra列看到Using index,说明正在使用覆盖索引,只扫描索引的数据,它比按索引次序全表扫描的开销要小很多
    range 范围扫描,一个有限制的索引扫描。key 列显示使用了哪个索引。当使用=、 <>、>、>=、<、<=、IS NULL、<=>、BETWEEN 或者 IN 操作符,用常量比较关键字列时,可以使用 range
    ref 一种索引访问,它返回所有匹配某个单个值的行。此类索引访问只有当使用非唯一性索引或唯一性索引非唯一性前缀时才会发生。这个类型跟eq_ref不同的是,它用在关联操作只使用了索引的最左前缀,或者索引不是UNIQUE和PRIMARY KEY。ref可以用于使用=或<=>操作符的带索引的列。
    eq_ref 最多只返回一条符合条件的记录。使用唯一性索引或主键查找时会发生 (高效)
    const 当确定最多只会有一行匹配的时候,MySQL优化器会在查询前读取它而且只读取一次,因此非常快。当主键放入where子句时,mysql把这个查询转为一个常量(高效)
    system 这是const连接类型的一种特例,表仅有一行满足条件。
    Null 意味说mysql能在优化阶段分解查询语句,在执行阶段甚至用不到访问表或索引(高效)
    mysql> explain select * from servers;
     ---- ------------- --------- ------ --------------- ------ --------- ------ ------ ------- 
    | id | select_type | table   | type | possible_keys | key  | key_len | ref  | rows | Extra |
     ---- ------------- --------- ------ --------------- ------ --------- ------ ------ ------- 
    |  1 | SIMPLE      | servers | ALL  | NULL          | NULL | NULL    | NULL |    1 | NULL  |
     ---- ------------- --------- ------ --------------- ------ --------- ------ ------ ------- 
    1 row in set (0.03 sec)
    

    ---- ------------- ------- ------- ------------------- --------- --------- ------- ------ -------
    | id | select_type | table | type  | possible_keys     | key     | key_len | ref   | rows | Extra |
    ---- ------------- ------- ------- ------------------- --------- --------- ------- ------ -------

    万黄金时代该列是NULL,则从未有关的目录。在此种气象下,能够透过检查WHERE子句看是不是它引用某个列或符合索引的列来提升你的查询品质。若是是那样,制造一个老少咸宜的目录並且再一次用EXPLAIN检查查询
    key列 key列展现MySQL实际调整运用的键(索引)。要想强制MySQL使用或忽视possible_keys列中的索引,在询问中应用FORCE INDEX、USE INDEX可能IGNORE INDEX。
    key_len列 key_len列突显MySQL决定采用的键长度。使用的目录的长短,在不损失精确性的动静下,长度越短越好
    rows列 rows列显示MySQL认为它实施查询时必须检查的行数
     mysql相关优化技艺
    用尽全力采取数据类型一样的多少列举办相比较
    使带索引的数据列在可比表明式中独立出现
    不要在like格局的启幕地方应用通配符,此时目录无效
    尽量使用数值操作,少使用字符串操作
    数据类型合理选拔,尽量"小",接受适用于累积引擎的多少格式
    尽可能将数据列证明为NOT NULL ,因为MYSQL无需在查询管理时期检查数据列值是还是不是为NULL
    思索使用ENUM数据列,ENUM在MYSQL内部被代表为后生可畏类别数值,处理速度快
    应用Procedure analyse()语句 该语句能够将数据列中能够利用ENUM情势字段列出,procedure analyse(16,256)语句表示数据列中分化取值抢先14个的要么长度超越2六贰十一个字节的,不提议ENUM类型的提议
    对轻便产生碎片化的数据表实行重新整建,对于可变长度的数据列,随着数据的大气改换大概去除极易发生碎片,因而必要定期optimize table
    尽量幸免对BLOB或TEXT值进行索引

    possible_keys

    来得查询利用了什么样索引,表示该索引能够扩充飞快地查找,不过列出来的目录对于继续优化过程只怕是从未有过用的

    1010cc时时彩经典版 2

    1.id

    ---- ------------- ---------- ------- --------------- ------ --------- ------ ------ ----------------- | id | select_type | table | type |...

    key

    key列彰显MySQL实际决定动用的键(索引)。若无选用索引,键是NULL。要想强制MySQL使用或忽视possible_keys列中的索引,在询问中央银行使FORCE INDEX、USE INDEX大概IGNORE INDEX。

    expain出来的新闻有10列,分别是id、select_type、table、type、possible_keys、key、key_len、ref、rows、Extra,下边前境遇那个字段出现的大概开展解释:

      我的知情是SQL实行的顺畅的标志,SQL从大到小的实行.

    key_len

    key_len列展现MySQL决定使用的键长度。若是键是NULL,则长度为NULL。使用的目录的尺寸。在不损失准确性的状态下,长度越短越好 。

    一、 id

    例如:

    ref

    ref列突显选用哪个列或常数与key一同从表中精选行。

         小编的敞亮是SQL试行的风流罗曼蒂克生龙活虎的标志,SQL从大到小的进行

    mysql> explain select * from (select * from ( select * from t3 where id=3952602) a) b;
    ---- ------------- ------------ -------- ------------------- --------- --------- ------ ------ -------
    | id | select_type | table      | type   | possible_keys     | key     | key_len | ref  | rows | Extra |
    ---- ------------- ------------ -------- ------------------- --------- --------- ------ ------ -------
    |  1 | PRIMARY     | <derived2> | system | NULL              | NULL    | NULL    | NULL |    1 |       |
    |  2 | DERIVED     | <derived3> | system | NULL              | NULL    | NULL    | NULL |    1 |       |
    |  3 | DERIVED     | t3         | const  | PRIMARY,idx_t3_id | PRIMARY | 4       |      |    1 |       |
    ---- ------------- ------------ -------- ------------------- --------- --------- ------ ------ -------

    rows

    rows列呈现MySQL感到它实践查询时必得检查的行数。注意那是一个预价值评估。

    1. id同样期,试行各种由上至下

    2. 即使是子查询,id的序号会依次增加,id值越大优先级越高,越先被实行

    很明朗那条SQL是从里向外的实施,正是从id=3 向上施行.

    Extra

    Extra是EXPLAIN输出中另外贰个很关键的列,该列展现MySQL在查询进程中的一些详细音讯,MySQL查询优化器施行查询的进程中对查询安插的显要补充消息。

    类型 说明
    Using filesort MySQL有两种方式可以生成有序的结果,通过排序操作或者使用索引,当Extra中出现了Using filesort 说明MySQL使用了后者,但注意虽然叫filesort但并不是说明就是用了文件来进行排序,只要可能排序都是在内存里完成的。大部分情况下利用索引排序更快,所以一般这时也要考虑优化查询了。使用文件完成排序操作,这是可能是ordery by,group by语句的结果,这可能是一个CPU密集型的过程,可以通过选择合适的索引来改进性能,用索引来为查询结果排序。
    Using temporary 用临时表保存中间结果,常用于GROUP BY 和 ORDER BY操作中,一般看到它说明查询需要优化了,就算避免不了临时表的使用也要尽量避免硬盘临时表的使用。
    Not exists MYSQL优化了LEFT JOIN,一旦它找到了匹配LEFT JOIN标准的行, 就不再搜索了。
    Using index 说明查询是覆盖了索引的,不需要读取数据文件,从索引树(索引文件)中即可获得信息。如果同时出现using where,表明索引被用来执行索引键值的查找,没有using where,表明索引用来读取数据而非执行查找动作。这是MySQL服务层完成的,但无需再回表查询记录。
    Using index condition 这是MySQL 5.6出来的新特性,叫做“索引条件推送”。简单说一点就是MySQL原来在索引上是不能执行如like这样的操作的,但是现在可以了,这样减少了不必要的IO操作,但是只能用在二级索引上。
    Using where 使用了WHERE从句来限制哪些行将与下一张表匹配或者是返回给用户。注意:Extra列出现Using where表示MySQL服务器将存储引擎返回服务层以后再应用WHERE条件过滤。
    Using join buffer 使用了连接缓存:Block Nested Loop,连接算法是块嵌套循环连接;Batched Key Access,连接算法是批量索引连接
    impossible where where子句的值总是false,不能用来获取任何元组
    select tables optimized away 在没有GROUP BY子句的情况下,基于索引优化MIN/MAX操作,或者对于MyISAM存储引擎优化COUNT(*)操作,不必等到执行阶段再进行计算,查询执行计划生成的阶段即完成优化。
    distinct 优化distinct操作,在找到第一匹配的元组后即停止找同样值的动作

    作者:高广超
    链接:
    來源:简书
    版权表明:内容出自网络,版权归原创者全数。除非不恐怕肯定,大家都会标注作者及出处,如有侵害版权烦请告知,大家会马上删除并表示歉意。多谢。

     

    笔者积存多年的干货文书档案无偿赠予,满含前端后端和测量试验,系统架构,高并发管理,优化等

    1010cc时时彩经典版 3

     

    3.id比方同样,可以以为是如火如荼组,从上往下朝气蓬勃意气风发施行;在具备组中,id值越大,优先级越高,越先实践

    1. select_type

     

    尽管select类型,能够有以下

     

    (1) SIMPLE

    二、select_type

    简单易行SELECT(不选择UNION或子查询等) 举例:

          示查询中各样select子句的品种**

    mysql> explain select * from t3 where id=3952602;

    (1) SIMPLE(轻便SELECT,不选取UNION或子查询等)

    ---- ------------- ------- ------- ------------------- --------- --------- ------- ------ -------
    | id | select_type | table | type  | possible_keys     | key     | key_len | ref   | rows | Extra |
    ---- ------------- ------- ------- ------------------- --------- --------- ------- ------ -------
    |  1 | SIMPLE      | t3    | const | PRIMARY,idx_t3_id | PRIMARY | 4       | const |    1 |       |
    ---- ------------- ------- ------- ------------------- --------- --------- ------- ------ -------

    (2) PQashqaiIMAOdysseyY(查询中若包涵其余头眼昏花的子部分,最外层的select被标志为PLX570IMA奥迪Q7Y)

    (2). PRIMARY

    (3) UNION(UNION中的第一个或后边的SELECT语句)

    自身的明白是最外层的select.比如:

    (4) DEPENDENT UNION(UNION中的第二个或后边的SELECT语句,决计于外面包车型地铁查询)

    mysql> explain select * from (select * from t3 where id=3952602) a ;

    (5) UNION RESULT(UNION的结果)

    ---- ------------- ------------ -------- ------------------- --------- --------- ------ ------ -------
    | id | select_type | table      | type   | possible_keys     | key     | key_len | ref  | rows | Extra |
    ---- ------------- ------------ -------- ------------------- --------- --------- ------ ------ -------
    |  1 | PRIMARY     | <derived2> | system | NULL              | NULL    | NULL    | NULL |    1 |       |
    |  2 | DERIVED     | t3         | const  | PRIMARY,idx_t3_id | PRIMARY | 4       |      |    1 |       |
    ---- ------------- ------------ -------- ------------------- --------- --------- ------ ------ -------

    (6) SUBQUE哈弗Y(子查询中的第1个SELECT)

    (3).UNION

    (7) DEPENDENT SUBQUEHighlanderY(子查询中的第一个SELECT,决议于外面包车型大巴询问)

    UNION中的第2个或前边的SELECT语句.例如

    (8) DETiggoIVED(派生表的SELECT, FROM子句的子查询)

    mysql> explain select * from t3 where id=3952602 union all select * from t3 ;

    (9) UNCACHEABLE SUBQUE奔驰M级Y(一个子查询的结果无法被缓存,必得重新评估外链接的第大器晚成行)

    ---- -------------- ------------ ------- ------------------- --------- --------- ------- ------ -------
    | id | select_type  | table      | type  | possible_keys     | key     | key_len | ref   | rows | Extra |
    ---- -------------- ------------ ------- ------------------- --------- --------- ------- ------ -------
    |  1 | PRIMARY      | t3         | const | PRIMARY,idx_t3_id | PRIMARY | 4       | const |    1 |       |
    |  2 | UNION        | t3         | ALL   | NULL              | NULL    | NULL    | NULL  | 1000 |       |
    |NULL | UNION RESULT | <union1,2> | ALL   | NULL              | NULL    | NULL    | NULL  | NULL |       |
    ---- -------------- ------------ ------- ------------------- --------- --------- ------- ------ -------

     

    (4).DEPENDENT UNION

    三、table

    UNION中的第一个或后面包车型地铁SELECT语句,决定于外面包车型地铁询问

    呈现那风姿洒脱行的数码是有关哪张表的,不常不是真正的表名字,看见的是derivedx(x是个数字,我的敞亮是第几步实施的结果)

    mysql> explain select * from t3 where id in (select id from t3 where id=3952602 union all select id from t3)  ;

    1010cc时时彩经典版 4

    ---- -------------------- ------------ -------- ------------------- --------- --------- ------- ------ --------------------------
    | id | select_type        | table      | type   | possible_keys     | key     | key_len | ref   | rows | Extra                    |
    ---- -------------------- ------------ -------- ------------------- --------- --------- ------- ------ --------------------------
    |  1 | PRIMARY            | t3         | ALL    | NULL              | NULL    | NULL    | NULL  | 1000 | Using where              |
    |  2 | DEPENDENT SUBQUERY | t3         | const  | PRIMARY,idx_t3_id | PRIMARY | 4       | const |    1 | Using index              |
    |  3 | DEPENDENT UNION    | t3         | eq_ref | PRIMARY,idx_t3_id | PRIMARY | 4       | func  |    1 | Using where; Using index |
    |NULL | UNION RESULT       | <union2,3> | ALL    | NULL              | NULL    | NULL    | NULL  | NULL |                          |
    ---- -------------------- ------------ -------- ------------------- --------- --------- ------- ------ --------------------------

    mysql> explain select * from (select * from ( select * from t1 where id=2602) a) b;
     ---- ------------- ------------ -------- ------------------- --------- --------- ------ ------ ------- 
    | id | select_type | table      | type   | possible_keys     | key     | key_len | ref  | rows | Extra |
     ---- ------------- ------------ -------- ------------------- --------- --------- ------ ------ ------- 
    |  1 | PRIMARY     | <derived2> | system | NULL              | NULL    | NULL    | NULL |    1 |       |
    |  2 | DERIVED     | <derived3> | system | NULL              | NULL    | NULL    | NULL |    1 |       |
    |  3 | DERIVED     | t1         | const  | PRIMARY,idx_t1_id | PRIMARY | 4       |      |    1 |       |
     ---- ------------- ------------ -------- ------------------- --------- --------- ------ ------ ------- 
    

    (4).UNION RESULT

    1010cc时时彩经典版 5

    UNION的结果。

     

    1010cc时时彩经典版,mysql> explain select * from t3 where id=3952602 union all select * from t3 ;

    四、type

    ---- -------------- ------------ ------- ------------------- --------- --------- ------- ------ -------
    | id | select_type  | table      | type  | possible_keys     | key     | key_len | ref   | rows | Extra |
    ---- -------------- ------------ ------- ------------------- --------- --------- ------- ------ -------
    |  1 | PRIMARY      | t3         | const | PRIMARY,idx_t3_id | PRIMARY | 4       | const |    1 |       |
    |  2 | UNION        | t3         | ALL   | NULL              | NULL    | NULL    | NULL  | 1000 |       |
    |NULL | UNION RESULT | <union1,2> | ALL   | NULL              | NULL    | NULL    | NULL  | NULL |       |
    ---- -------------- ------------ ------- ------------------- --------- --------- ------- ------ -------

    表示MySQL在表中找到所需行的艺术,又称“访谈类型”。

    (5).SUBQUERY

    常用的门类有: ALL, index,  range, ref, eq_ref, const, system, NULL(从左到右,品质从差到好)

    子查询中的第贰个SELECT.

    ALL:Full Table Scan, MySQL将遍历全表以找到卓殊的行

    mysql> explain select * from t3 where id = (select id from t3 where id=3952602 )  ;

    本文由1010cc时时彩经典版发布于1010cc安卓版,转载请注明出处:1010cc时时彩经典版:详细介绍,mysql查询优化相关

    关键词: