先看一下實驗的兩張表: 表comments,總行數28856 表comments_for,總行數57,comments_id是有索引的,ID列為主鍵。 以上兩張表是我們測試的基礎,然後看一下索引,comments_for這個表comments_id是有索引的,ID為主鍵。 最近被公司某一開發問道JO ...
先看一下實驗的兩張表:
表comments,總行數28856




EXPLAIN SELECT * FROM comments gc
JOIN comments_for gcf ON gc.comments_id=gcf.comments_id;
看一下輸出信息:

SELECT * FROM comments gc JOIN comments_for gcf ON gc.comments_id=gcf.comments_id WHERE gc.comments_id =2056

EXPLAIN SELECT * FROM comments gc
JOIN comments_for gcf ON gc.order_id=gcf.product_id
我們看一下執行計劃:

EXPLAIN SELECT * FROM comments gc
LEFT JOIN comments_for gcf ON gc.comments_id=gcf.comments_id
看一下執行計劃:

EXPLAIN SELECT * FROM comments_for gcf LEFT JOIN comments gc ON gc.comments_id=gcf.comments_id WHERE gcf.comments_id =2056
通過gcf表進行篩選的話,就會預設選擇gcf表作為驅動表,因為很明顯他進行過了篩選,匹配的條件會很少,具體可以看下執行計劃:
