基於案例理解MySQL執行計劃
版權宣告:本文為博主原創文章,歡迎擴散,擴散請務必註明出處。 https://blog.csdn.net/robinson_0612/article/details/84569447
一、執行計劃一些參考連結
二、獲取SQL執行計劃
方法1(命令列):EXPLAIN sql_statement
方法2(Toad):Toad裡邊在SQL編輯器裡邊點選explain plan
方法3(Navicate)Navicate裡邊點選解釋
三、案例
1、原始SQL及完整執行計劃
原始SQL語句: SELECT c.customerNumber, c.customerName, e.lastname FROM customers c INNER JOIN employees e ON c.salesRepEmployeeNumber = e.employeeNumber WHERE e.lastname LIKE 'T%' AND EXISTS (SELECT orderNumber, SUM(priceEach * quantityOrdered) FROM orderdetails INNER JOIN orders USING (orderNumber) WHERE customerNumber = c.customerNumber GROUP BY orderNumber HAVING SUM(priceEach * quantityOrdered) > 50000) UIO/">NION SELECT customerNumber, customerName, 'NULL' FROM customers WHERE customerName LIKE 'T%'
執行計劃截圖

2、執行計劃包含的資訊 – id列
3、執行計劃包含的資訊 – select_type列
4、執行計劃包含的資訊 – table列
5、執行計劃包含的資訊 – type列cost對比

type列示例

6、執行計劃包含的資訊 – key列
7、執行計劃包含的資訊 – ref與rows
8、執行計劃包含的資訊 – filtered列
9、執行計劃包含的資訊 – extra列