日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

根据条件查询某条记录的条数_「性能与架构」MySQL 8 查询优化新工具 Explain Analyze...

發布時間:2024/10/14 数据库 92 豆豆
生活随笔 收集整理的這篇文章主要介紹了 根据条件查询某条记录的条数_「性能与架构」MySQL 8 查询优化新工具 Explain Analyze... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

來源:性能與架構公眾號

1. Explain Analyze 介紹

Explain 是我們常用的查詢分析工具,可以對查詢語句的執行方式進行評估,給出很多有用的線索。

但他僅僅是評估,不是實際的執行情況,比如結果中的 rows,可能和實際結果相差甚大。

Explain AnalyzeMySQL 8 中提供的新工具,牛X之處在于可以給出實際執行情況

Explain Analyze 是一個查詢性能分析工具,可以詳細的顯示出 查詢語句執行過程中,都在哪兒花費了多少時間。

Explain Analyze 會做出查詢計劃,并且會實際執行,以測量出查詢計劃中各個關鍵點的實際指標,例如耗時、條數,最后詳細的打印出來。

2. 實踐效果

例如有如下一條查詢語句:

SELECT?first_name,?last_name,?SUM(amount)?AS?totalFROM?staff?INNER?JOIN?payment??ON?staff.staff_id?=?payment.staff_id?????AND?????payment_date?LIKE?'2005-08%'GROUP?BY?first_name,?last_name;

現在對它執行 Explain Analyze,只需要添加在 SELECT 前邊就行了:

EXPLAIN?ANALYZESELECT?first_name,?last_name,?SUM(amount)?AS?totalFROM?staff?INNER?JOIN?payment??ON?staff.staff_id?=?payment.staff_id?????AND?????payment_date?LIKE?'2005-08%'GROUP?BY?first_name,?last_name;

執行結果:

結果中包含了各個執行步驟的詳細情況,內容比較多,圖片中不方便看,下面咱就拿出其中一條看一下:

Filter:?(payment.payment_date?like?'2005-08%')??(cost=117.43?rows=894)?(actual?time=0.454..194.045?rows=2844?loops=2)

Filter 表示這是執行過濾的一個步驟。

(payment.payment_date?like?'2005-08%')??

這部分是過濾條件。

(cost=117.43?rows=894)

這部分是估算的結果,預計需要花費的時間,和返回的記錄條數。

這就是在真正執行之前,查詢優化器所做的估算。

(actual?time=0.454..194.045?rows=2844?loops=2)

這部分就是實際執行的結果數據了。

time 的結果中分為2個部分,前面的 0.454 是返回第一條記錄的耗時,后面的 194.045 是返回所有記錄的耗時。

rows 就是實際返回的準確記錄條數。

loops 是當前過濾迭代器所執行的循環的數量。

3. 實際環境

如果你想實際試試,可以使用 MySQL 提供的測試數據庫 sakila

下載地址:

https://dev.mysql.com/doc/index-other.html

![image-20200702114403512](/Users/a/Library/Application Support/typora-user-images/image-20200702114403512.png)

解壓后倒入MySQL:

mysql>?SOURCE?/xxx/sakila-schema.sql;mysql>?SOURCE?/xxx/sakila-data.sql;

4. 小結

感謝閱讀,希望對你有所幫助

參考資料:

https://mysqlserverteam.com/mysql-explain-analyze/

https://www.percona.com/blog/2019/10/28/using-explain-analyze-in-mysql-8/

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的根据条件查询某条记录的条数_「性能与架构」MySQL 8 查询优化新工具 Explain Analyze...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。