MySQL查詢中Sending data佔用大量時間的問題處理
以上SQL很多列沒有用到索引。
1 queries executed, 1 success, 0 errors, 0 warnings
查詢:SELECT tm.id, tm.to_no , tm.source_website_id , tm.warehouse_name , tm.target_website_id , tm.channel_name , tm.sale_channel_nam...
共 1000 行受到影響
執行耗時 : 1 min 10 sec
傳送時間 : 0.016 sec
總耗時 : 1 min 10 sec
Sending data花費時間最長。
“Sending data”狀態的含義,原來這個狀態的名稱很具有誤導性,所謂的“Sending data”並不是單純的傳送資料,而是包括“收集 + 傳送 資料”。
這裡的關鍵是為什麼要收集資料,原因在於:mysql使用“索引”完成查詢結束後,mysql得到了一堆的行id,如果有的列並不在索引中,mysql需要重新到“資料行”上將需要返回的資料讀取出來返回個客戶端。
對欄位新增索引。
第一條索引:ALTER TABLE `transfer_detail` ADD INDEX idx_transfer_id (`transfer_id`);
第二條索引:ALTER TABLE `transfer_item` ADD INDEX idx_to_id (`to_id`);
第三條索引:ALTER TABLE `transfer_operation` ADD INDEX idx_transfer_id (`transfer_id`);
加 第一條索引:ALTER TABLE `transfer_detail` ADD INDEX idx_transfer_id (`transfer_id`);
執行計劃:
消耗時間:
加第二條索引: ALTER TABLE `transfer_item` ADD INDEX idx_to_id (`to_id`);
執行計劃:
消耗時間:
加第三條索引: ALTER TABLE `transfer_operation` ADD INDEX idx_transfer_id (`transfer_id`);
執行計劃:
消耗時間:
最佳化完成。
tm表的條件欄位資料分佈不均勻,不建議加索引。
對條件欄位新增索引後,Sending data消耗時間大幅下降。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22996654/viewspace-2660182/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 一次臨時表空間大量佔用問題的處理
- MySQL Sending data導致查詢很慢的問題詳細分析MySql
- Mysql中查詢系統時間MySql
- Laravel MongoDB 時間區間查詢的問題LaravelMongoDB
- MySQL查詢時間段MySql
- 關於 mysql 中的 rand () 查詢問題MySql
- MySQL邏輯查詢處理MySql
- Mysql 查詢時間轉換MySql
- Mysql中的巢狀子查詢問題QSBSMySql巢狀
- 解決Oracle中Exp/Imp大量資料處理問題Oracle
- 使用並查集處理集合的合併和查詢問題並查集
- 關於時間 PHP 處理包遇到的問題時間序列化差值問題PHP
- MySQL 查詢處理 SQL查詢執行順序MySql
- 在PHP中怎麼解決大量資料處理的問題PHP
- mysql的處理能力問題MySql
- SHARED POOL中KGH: NOACCESS佔用大量記憶體的問題分析記憶體
- 臨時表空間被佔滿的原因查詢
- Java中對時間的處理Java
- Oracle下查詢臨時表空間佔用率Oracle
- 低效sql語句執行緩慢引起的大量佔用伺服器的CPU問題處理 (優化心得)SQL伺服器優化
- mysql分割槽表佔用大量容量處理(最佳化)及歸檔分割槽表MySql
- 如何處理 MySQL 萬用字元的模糊查詢MySql字元
- DELETE TABLE資料後,查詢變慢,問題處理delete
- mysql 執行一段時間比較慢問題處理經過MySql
- mysql的處理能力問題(2)MySql
- 一個MySQL多表查詢的問題MySql
- 問題:mybatis like 佔位符處理MyBatis
- mysql處理varchar型別的between和and的時間問題少一天解決;MySql型別
- mysql查詢最近時間的一組資料MySql
- 模板中的名字查詢問題
- 表空間使用情況查詢慢的處理
- Java8中的時間處理Java
- ASP.Net中的時間處理ASP.NET
- 查詢表空間容量時顯示大小為空的問題
- Oracle 查詢佔用臨時表空間大的歷史會話和SQLOracle會話SQL
- mysql處理海量資料時的一些優化查詢速度方法MySql優化
- mysql問題處理兩則MySql
- mysql 問題處理二則MySql