《Mysql必讀Mysql Explain 詳細介紹》要點:
本文介紹了Mysql必讀Mysql Explain 詳細介紹,希望對您有用。如果有疑問,可以聯系我們。
MYSQL入門Mysql Explain 這里做一個資料的全面整理.
MYSQL入門一.語法
MYSQL入門explain < table_name >
MYSQL入門例如: explain select * from t3 where id=3952602;
MYSQL入門二.explain輸出解釋
MYSQL入門+----+-------------+-------+-------+-------------------+---------+---------+-------+------+-------+
| id | select_type | table | type??| possible_keys? ???| key? ???| key_len | ref? ?| rows | Extra |
+----+-------------+-------+-------+-------------------+---------+---------+-------+------+-------+
MYSQL入門1.id
MYSQL入門??我的理解是SQL執行的順利的標識,SQL從大到小的執行.
MYSQL入門例如:
MYSQL入門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 |? ?? ? |
+----+-------------+------------+--------+-------------------+---------+---------+------+------+-------+
MYSQL入門很顯然這條SQL是從里向外的執行,就是從id=3 向上執行.
MYSQL入門2. select_type
MYSQL入門就是select類型,可以有以下
MYSQL入門(1) SIMPLE
MYSQL入門簡單SELECT(不使用UNION或子查詢等) 例如:
MYSQL入門mysql> explain select * from t3 where id=3952602;
MYSQL入門+----+-------------+-------+-------+-------------------+---------+---------+-------+------+-------+
| 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 |? ?? ? |
+----+-------------+-------+-------+-------------------+---------+---------+-------+------+-------+
MYSQL入門(2). PRIMARY
MYSQL入門我的理解是最外層的select.例如:
MYSQL入門mysql> explain select * from (select * from t3 where id=3952602) a ;
MYSQL入門+----+-------------+------------+--------+-------------------+---------+---------+------+------+-------+
| 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 |? ?? ? |
+----+-------------+------------+--------+-------------------+---------+---------+------+------+-------+
MYSQL入門(3).UNION
MYSQL入門UNION中的第二個或后面的SELECT語句.例如
MYSQL入門mysql> explain select * from t3 where id=3952602 union all select * from t3 ;
MYSQL入門+----+--------------+------------+-------+-------------------+---------+---------+-------+------+-------+
| 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入門(4).DEPENDENT UNION
MYSQL入門UNION中的第二個或后面的SELECT語句,取決于外面的查詢
MYSQL入門mysql> explain select * from t3 where id in (select id from t3 where id=3952602 union all select id from t3)??;
MYSQL入門+----+--------------------+------------+--------+-------------------+---------+---------+-------+------+--------------------------+
| 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入門(4).UNION RESULT
MYSQL入門UNION的結果.
MYSQL入門mysql> explain select * from t3 where id=3952602 union all select * from t3 ;
MYSQL入門+----+--------------+------------+-------+-------------------+---------+---------+-------+------+-------+
| 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
MYSQL入門子查詢中的第一個SELECT.
MYSQL入門mysql> explain select * from t3 where id = (select id from t3 where id=3952602 )??;
MYSQL入門+----+-------------+-------+-------+-------------------+---------+---------+-------+------+-------------+
| 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 | SUBQUERY? ? | t3? ? | const | PRIMARY,idx_t3_id | PRIMARY | 4? ?? ? |? ?? ? |? ? 1 | Using index |
+----+-------------+-------+-------+-------------------+---------+---------+-------+------+-------------+
MYSQL入門(6).??DEPENDENT SUBQUERY
MYSQL入門子查詢中的第一個SELECT,取決于外面的查詢
MYSQL入門mysql> explain select id from t3 where id in (select id from t3 where id=3952602 )??;
MYSQL入門+----+--------------------+-------+-------+-------------------+---------+---------+-------+------+--------------------------+
| id | select_type? ?? ???| table | type??| possible_keys? ???| key? ???| key_len | ref? ?| rows | Extra? ?? ?? ?? ?? ?? ???|
+----+--------------------+-------+-------+-------------------+---------+---------+-------+------+--------------------------+
|??1 | PRIMARY? ?? ?? ?? ?| t3? ? | index | NULL? ?? ?? ?? ???| PRIMARY | 4? ?? ? | NULL??| 1000 | Using where; Using index |
|??2 | DEPENDENT SUBQUERY | t3? ? | const | PRIMARY,idx_t3_id | PRIMARY | 4? ?? ? | const |? ? 1 | Using index? ?? ?? ?? ???|
+----+--------------------+-------+-------+-------------------+---------+---------+-------+------+--------------------------+
MYSQL入門7).DERIVED
MYSQL入門派生表的SELECT(FROM子句的子查詢)
MYSQL入門mysql> explain select * from (select * from t3 where id=3952602) a ;
MYSQL入門+----+-------------+------------+--------+-------------------+---------+---------+------+------+-------+
| 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 |? ?? ? |
+----+-------------+------------+--------+-------------------+---------+---------+------+------+-------+
MYSQL入門3.table
MYSQL入門顯示這一行的數據是關于哪張表的.
MYSQL入門有時不是真實的表名字,看到的是derivedx(x是個數字,我的理解是第幾步執行的結果)
MYSQL入門mysql> explain select * from (select * from ( select * from t3 where id=3952602) a) b;
MYSQL入門+----+-------------+------------+--------+-------------------+---------+---------+------+------+-------+
| 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 |? ?? ? |
+----+-------------+------------+--------+-------------------+---------+---------+------+------+-------+
MYSQL入門4.type
MYSQL入門這列很重要,顯示了連接使用了哪種類別,有無使用索引.
MYSQL入門從最好到最差的連接類型為const、eq_reg、ref、range、indexhe和ALL
MYSQL入門(1).system
MYSQL入門這是const聯接類型的一個特例.表僅有一行滿足條件.如下(t3表上的id是 primary key)
MYSQL入門mysql> explain select * from (select * from t3 where id=3952602) a ;
MYSQL入門+----+-------------+------------+--------+-------------------+---------+---------+------+------+-------+
| 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 |? ?? ? |
+----+-------------+------------+--------+-------------------+---------+---------+------+------+-------+
MYSQL入門(2).const
MYSQL入門表最多有一個匹配行,它將在查詢開始時被讀取.因為僅有一行,在這行的列值可被優化器剩余部分認為是常數.const表很快,因為它們只讀取一次!
MYSQL入門const用于用常數值比較PRIMARY KEY或UNIQUE索引的所有部分時.在下面的查詢中,tbl_name可以用于const表:
MYSQL入門SELECT * from tbl_name WHERE primary_key=1;
SELECT * from tbl_name WHERE primary_key_part1=1和 primary_key_part2=2;
MYSQL入門例如:
MYSQL入門mysql> explain select * from t3 where id=3952602;
MYSQL入門+----+-------------+-------+-------+-------------------+---------+---------+-------+------+-------+
| 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 |? ?? ? |
+----+-------------+-------+-------+-------------------+---------+---------+-------+------+-------+
MYSQL入門(3). eq_ref
MYSQL入門對于每個來自于前面的表的行組合,從該表中讀取一行.這可能是最好的聯接類型,除了const類型.它用在一個索引的所有部分被聯接使用并且索引是UNIQUE或PRIMARY KEY.
MYSQL入門eq_ref可以用于使用= 操作符比較的帶索引的列.比較值可以為常量或一個使用在該表前面所讀取的表的列的表達式.
MYSQL入門在下面的例子中,MySQL可以使用eq_ref聯接來處理ref_tables:
MYSQL入門
SELECT * FROM ref_table,other_table
WHERE ref_table.key_column=other_table.column;
SELECT * FROM ref_table,other_table
WHERE ref_table.key_column_part1=other_table.column
AND ref_table.key_column_part2=1;
MYSQL入門例如
MYSQL入門mysql> create unique index??idx_t3_id on t3(id) ;
Query OK, 1000 rows affected (0.03 sec)
Records: 1000??Duplicates: 0??Warnings: 0
MYSQL入門mysql> explain select * from t3,t4 where t3.id=t4.accountid;
MYSQL入門+----+-------------+-------+--------+-------------------+-----------+---------+----------------------+------+-------+
| id | select_type | table | type? ?| possible_keys? ???| key? ?? ? | key_len | ref? ?? ?? ?? ?? ?? ?| rows | Extra |
+----+-------------+-------+--------+-------------------+-----------+---------+----------------------+------+-------+
|??1 | SIMPLE? ?? ?| t4? ? | ALL? ? | NULL? ?? ?? ?? ???| NULL? ?? ?| NULL? ? | NULL? ?? ?? ?? ?? ???| 1000 |? ?? ? |
|??1 | SIMPLE? ?? ?| t3? ? | eq_ref | PRIMARY,idx_t3_id | idx_t3_id | 4? ?? ? | dbatest.t4.accountid |? ? 1 |? ?? ? |
+----+-------------+-------+--------+-------------------+-----------+---------+----------------------+------+-------+
MYSQL入門(4).ref
MYSQL入門對于每個來自于前面的表的行組合,所有有匹配索引值的行將從這張表中讀取.如果聯接只使用鍵的最左邊的前綴,或如果鍵不是UNIQUE或PRIMARY KEY(換句話說,如果聯接不能基于關鍵字選擇單個行的話),則使用ref.如果使用的鍵僅僅匹配少量行,該聯接類型是不錯的.
ref可以用于使用=或<=>操作符的帶索引的列.
MYSQL入門在下面的例子中,MySQL可以使用ref聯接來處理ref_tables:
MYSQL入門
SELECT * FROM ref_table WHERE key_column=expr;
SELECT * FROM ref_table,other_table
WHERE ref_table.key_column=other_table.column;
SELECT * FROM ref_table,other_table
WHERE ref_table.key_column_part1=other_table.column
AND ref_table.key_column_part2=1;
MYSQL入門例如:
MYSQL入門
mysql> drop index idx_t3_id on t3;
Query OK, 1000 rows affected (0.03 sec)
Records: 1000 Duplicates: 0 Warnings: 0
mysql> create index idx_t3_id on t3(id) ;
Query OK, 1000 rows affected (0.04 sec)
Records: 1000 Duplicates: 0 Warnings: 0
MYSQL入門mysql> explain select * from t3,t4 where t3.id=t4.accountid;
MYSQL入門+----+-------------+-------+------+-------------------+-----------+---------+----------------------+------+-------+
| id | select_type | table | type | possible_keys? ???| key? ?? ? | key_len | ref? ?? ?? ?? ?? ?? ?| rows | Extra |
+----+-------------+-------+------+-------------------+-----------+---------+----------------------+------+-------+
|??1 | SIMPLE? ?? ?| t4? ? | ALL??| NULL? ?? ?? ?? ???| NULL? ?? ?| NULL? ? | NULL? ?? ?? ?? ?? ???| 1000 |? ?? ? |
|??1 | SIMPLE? ?? ?| t3? ? | ref??| PRIMARY,idx_t3_id | idx_t3_id | 4? ?? ? | dbatest.t4.accountid |? ? 1 |? ?? ? |
+----+-------------+-------+------+-------------------+-----------+---------+----------------------+------+-------+
MYSQL入門2 rows in set (0.00 sec)
MYSQL入門(5).??ref_or_null
MYSQL入門該聯接類型如同ref,但是添加了MySQL可以專門搜索包含NULL值的行.在辦理子查詢中經常使用該聯接類型的優化.
MYSQL入門在下面的例子中,MySQL可以使用ref_or_null聯接來處理ref_tables:
MYSQL入門SELECT * FROM ref_table
WHERE key_column=expr OR key_column IS NULL;
MYSQL入門(6). index_merge
MYSQL入門該聯接類型表示使用了索引合并優化辦法.在這種情況下,key列包含了使用的索引的清單,key_len包含了使用的索引的最長的關鍵元素.
MYSQL入門例如:
MYSQL入門mysql> explain select * from t4 where id=3952602 or accountid=31754306 ;
MYSQL入門+----+-------------+-------+-------------+----------------------------+----------------------------+---------+------+------+------------------------------------------------------+
| id | select_type | table | type? ?? ???| possible_keys? ?? ?? ?? ???| key? ?? ?? ?? ?? ?? ?? ?? ?| key_len | ref??| rows | Extra? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?|
+----+-------------+-------+-------------+----------------------------+----------------------------+---------+------+------+------------------------------------------------------+
|??1 | SIMPLE? ?? ?| t4? ? | index_merge | idx_t4_id,idx_t4_accountid | idx_t4_id,idx_t4_accountid | 4,4? ???| NULL |? ? 2 | Using union(idx_t4_id,idx_t4_accountid); Using where |
+----+-------------+-------+-------------+----------------------------+----------------------------+---------+------+------+------------------------------------------------------+
MYSQL入門1 row in set (0.00 sec)
MYSQL入門(7). unique_subquery
MYSQL入門該類型替換了下面形式的IN子查詢的ref:
MYSQL入門value IN (SELECT primary_key FROM single_table WHERE some_expr)
MYSQL入門unique_subquery是一個索引查找函數,可以完全替換子查詢,效率更高.
MYSQL入門(8).index_subquery
MYSQL入門該聯接類型類似于unique_subquery.可以替換IN子查詢,但只適合下列形式的子查詢中的非唯一索引:
MYSQL入門value IN (SELECT key_column FROM single_table WHERE some_expr)
MYSQL入門(9).range
MYSQL入門只檢索給定范圍的行,使用一個索引來選擇行.key列顯示使用了哪個索引.key_len包含所使用索引的最長關鍵元素.在該類型中ref列為NULL.
MYSQL入門當使用=、<>、>、>=、<、<=、IS NULL、<=>、BETWEEN或者IN操作符,用常量比較關鍵字列時,可以使用range
MYSQL入門mysql> explain select * from t3 where id=3952602 or id=3952603 ;
MYSQL入門+----+-------------+-------+-------+-------------------+-----------+---------+------+------+-------------+
| id | select_type | table | type??| possible_keys? ???| key? ?? ? | key_len | ref??| rows | Extra? ?? ? |
+----+-------------+-------+-------+-------------------+-----------+---------+------+------+-------------+
|??1 | SIMPLE? ?? ?| t3? ? | range | PRIMARY,idx_t3_id | idx_t3_id | 4? ?? ? | NULL |? ? 2 | Using where |
+----+-------------+-------+-------+-------------------+-----------+---------+------+------+-------------+
MYSQL入門1 row in set (0.02 sec)
MYSQL入門(10).index
MYSQL入門該聯接類型與ALL相同,除了只有索引樹被掃描.這通常比ALL快,因為索引文件通常比數據文件小.
MYSQL入門當查詢只使用作為單索引一部分的列時,MySQL可以使用該聯接類型.
MYSQL入門(11). ALL
MYSQL入門對于每個來自于先前的表的行組合,進行完整的表掃描.如果表是第一個沒標記const的表,這通常不好,并且通常在它情況下很差.通常可以增加更多的索引而不要使用ALL,使得行能基于前面的表中的常數值或列值被檢索出.
MYSQL入門5.possible_keys
MYSQL入門possible_keys列指出MySQL能使用哪個索引在該表中找到行.注意,該列完全獨立于EXPLAIN輸出所示的表的次序.這意味著在possible_keys中的某些鍵實際上不能按生成的表次序使用.
MYSQL入門如果該列是NULL,則沒有相關的索引.在這種情況下,可以通過檢查WHERE子句看是否它引用某些列或適合索引的列來提高你的查詢性能.如果是這樣,創造一個適當的索引并且再次用EXPLAIN檢查查詢
MYSQL入門6. key
MYSQL入門key列顯示MySQL實際決定使用的鍵(索引).如果沒有選擇索引,鍵是NULL.要想強制MySQL使用或忽視possible_keys列中的索引,在查詢中使用FORCE INDEX、USE INDEX或者IGNORE INDEX.
MYSQL入門7.key_len
MYSQL入門key_len列顯示MySQL決定使用的鍵長度.如果鍵是NULL,則長度為NULL.
使用的索引的長度.在不損失精確性的情況下,長度越短越好
MYSQL入門8. ref
MYSQL入門ref列顯示使用哪個列或常數與key一起從表中選擇行.
MYSQL入門9. rows
MYSQL入門rows列顯示MySQL認為它執行查詢時必須檢查的行數.
MYSQL入門10. Extra
MYSQL入門該列包含MySQL辦理查詢的詳細信息,下面詳細.
MYSQL入門(1).Distinct
MYSQL入門一旦MYSQL找到了與行相聯合匹配的行,就不再搜索了
MYSQL入門(2).Not exists
MYSQL入門MYSQL優化了LEFT JOIN,一旦它找到了匹配LEFT JOIN標準的行,
MYSQL入門就不再搜索了
MYSQL入門(3).Range checked for each
MYSQL入門Record(index map:#)
MYSQL入門沒有找到理想的索引,因此對于從前面表中來的每一個行組合,MYSQL檢查使用哪個索引,并用它來從表中返回行.這是使用索引的最慢的連接之一
MYSQL入門(4).Using filesort
MYSQL入門看到這個的時候,查詢就需要優化了.MYSQL需要進行額外的步驟來發現如何對返回的行排序.它根據連接類型以及存儲排序鍵值和匹配條件的全部行的行指針來排序全部行
MYSQL入門(5).Using index
MYSQL入門列數據是從僅僅使用了索引中的信息而沒有讀取實際的行動的表返回的,這發生在對表的全部的哀求列都是同一個索引的部分的時候
MYSQL入門(6).Using temporary
MYSQL入門看到這個的時候,查詢需要優化了.這里,MYSQL需要創建一個臨時表來存儲結果,這通常發生在對不同的列集進行ORDER BY上,而不是GROUP BY上
MYSQL入門(7).Using where
MYSQL入門使用了WHERE從句來限制哪些行將與下一張表匹配或者是返回給用戶.如果不想返回表中的全部行,并且連接類型ALL或index,這就會發生,或者是查詢有問題
MYSQL入門感謝閱讀,希望能贊助到大家,謝謝大家對本站的支持!
歡迎參與《Mysql必讀Mysql Explain 詳細介紹》討論,分享您的想法,維易PHP學院為您提供專業教程。