“MySQL explain”与“FreeBSD:rsync”:页面之间的差异

来自WHY42
(页面间差异)
 
(已建立頁面,內容為 "<source lang="bash"> pkg install rsync rsync -avz --delete hexo/public root@riguz.com:/home/www/static </source> Category:Linux/Unix")
 
第1行: 第1行:
= Explain =
<source lang="bash">
Explain用来查看执行计划。可用于<span class="article-label">SELECT</span>, <span class="article-label">DELETE</span>, <span class="article-label">INSERT</span>, <span class="article-label">REPLACE</span>, and <span class="article-label">UPDATE</span> statements
pkg install rsync


== 例子 ==
rsync -avz --delete hexo/public root@riguz.com:/home/www/static
<pre>
</source>
mysql> explain SELECT COUNT(*) FROM vehicle_prod WHERE fin LIKE '%00000' \G
*************************** 1. row ***************************
          id: 1
  select_type: SIMPLE
        table: vehicle_prod
  partitions: NULL
        type: index
possible_keys: NULL
          key: idx_vehicle_prod_fin
      key_len: 203
          ref: NULL
        rows: 3182812
    filtered: 11.11
        Extra: Using where; Using index
1 row in set, 1 warning (0.00 sec)
</pre>


其中:
[[Category:Linux/Unix]]
;id:The SELECT identifier
;select_type:The SELECT type
*SIMPLE:Simple SELECT (not using UNION or subqueries)
*PRIMARY:Outermost SELECT
*UNION:Second or later SELECT statement in a UNION
*SUBQUERY:First SELECT in subquery
* ...
;table:The table for the output row
;partitions:The matching partitions
;type:The join type
;possible_keys:The possible indexes to choose
;key:The index actually chosen
;key_len:The length of the chosen key
;ref:The columns compared to the index
;rows:Estimate of rows to be examined
;filtered:Percentage of rows filtered by table condition
;Extra:Additional information
 
It is possible for key to name an index that is not present in the <span class="article-label">possible_keys</span> value. This can happen if none of the <span class="article-label">possible_keys</span> indexes are suitable for looking up rows, but all the columns selected by the query are columns of some other index. That is, the named index covers the selected columns, so although it is not used to determine which rows to retrieve, an index scan is more efficient than a data row scan.
 
 
Extra显示的索引扫描方式:
*using where:A WHERE clause is used to restrict which rows to match against the next table or send to the client. Unless you specifically intend to fetch or examine all rows from the table, you may have something wrong in your query if the Extra value is not Using where and the table join type is ALL or index.
*using index condition:Tables are read by accessing index tuples and testing them first to determine whether to read full table rows. In this way, index information is used to defer (“push down”) reading full table rows unless it is necessary.
*using index:The column information is retrieved from the table using only information in the index tree without having to do an additional seek to read the actual row. This strategy can be used when the query uses only columns that are part of a single index. For InnoDB tables that have a user-defined clustered index, that index can be used even when Using index is absent from the Extra column. This is the case if type is index and key is PRIMARY.
*using index & using where:查询使用了索引,但是需要的数据都在索引列中能找到,不需要回表查询数据。
 
#https://dev.mysql.com/doc/refman/8.0/en/explain-output.html
[[Category:Database]]

2018年9月27日 (四) 02:25的最新版本

pkg install rsync

rsync -avz --delete hexo/public root@riguz.com:/home/www/static