真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

MySQL查詢中Sendingdata占用大量時(shí)間怎么辦

這篇文章主要介紹了MySQL查詢中Sending data占用大量時(shí)間怎么辦,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比章丘網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式章丘網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋章丘地區(qū)。費(fèi)用合理售后完善,十多年實(shí)體公司更值得信賴。

原SQL執(zhí)行計(jì)劃:

EXPLAIN

SELECT tm.id,

tm.to_no ,

tm.source_website_id ,

tm.warehouse_name ,

tm.target_website_id ,

tm.channel_name ,

tm.sale_channel_name ,

ti.product_basic_id ,

ti.product_basic_no ,

ti.product_basic_name ,

ti.tax_rate ,

ti.sale_tax_rate ,

ti.quantity/ti.main_aux_ratio quantity ,

ti.unit_cost * ti.main_aux_ratio unit_cost,

ti.unit_cost * IFNULL(ti.quantity,0) amount,

ti.received_qty,

tm.po_no ,

tm.source_website_name,

tm.target_website_name,

createUser.user_name create_user_name,

auditUser.user_name audit_user_name,

outUser.user_name out_user_name,

DATE_FORMAT(tm.create_time, '%Y/%m/%d %H:%i:%s') create_time ,

DATE_FORMAT(tp.audit_time, '%Y/%m/%d %H:%i:%s') audit_time ,

DATE_FORMAT(tp.out_time, '%Y/%m/%d %H:%i:%s') out_time ,

tm.`status`,

DATE_FORMAT(tp.in_time, '%Y/%m/%d %H:%i:%s') receive_time,

IFNULL(ti.return_qty/ti.main_aux_ratio, 0) return_qty,

ti.unit_cost * IFNULL(ti.received_qty,0) return_amount,

DATE_FORMAT(td.production_date, '%Y/%m/%d') production_date,

td.location_name off_location_name FROM transfer_master AS tm

LEFT JOIN transfer_item AS ti ON tm.id = ti.to_id

LEFT JOIN transfer_detail td ON tm.id = td.transfer_id AND ti.product_basic_id = td.product_basic_id

LEFT JOIN transfer_operation tp ON tp.transfer_id = tm.id

LEFT JOIN sys_user createUser ON createUser.sysno = tm.create_user_id

LEFT JOIN sys_user auditUser ON auditUser.sysno = tp.audit_user_id

LEFT JOIN sys_user outUser ON outUser.sysno = tp.out_user_id WHERE 1 = 1 AND tm.source_website_id IN (3) AND tm.status = 110 AND tm.create_time >= '2019-04-01' AND tm.create_time < '2019-10-01' ORDER BY tm.create_time DESC

MySQL查詢中Sending data占用大量時(shí)間怎么辦以上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 行受到影響

執(zhí)行耗時(shí)   : 1 min 10 sec

傳送時(shí)間   : 0.016 sec

總耗時(shí)      : 1 min 10 sec

MySQL查詢中Sending data占用大量時(shí)間怎么辦

Sending data花費(fèi)時(shí)間最長。

“Sending data”狀態(tài)的含義,原來這個(gè)狀態(tài)的名稱很具有誤導(dǎo)性,所謂的“Sending data”并不是單純的發(fā)送數(shù)據(jù),而是包括“收集 + 發(fā)送 數(shù)據(jù)”。

這里的關(guān)鍵是為什么要收集數(shù)據(jù),原因在于:mysql使用“索引”完成查詢結(jié)束后,mysql得到了一堆的行id,如果有的列并不在索引中,mysql需要重新到“數(shù)據(jù)行”上將需要返回的數(shù)據(jù)讀取出來返回個(gè)客戶端。

對(duì)字段添加索引。

第一條索引: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`);

執(zhí)行計(jì)劃:

MySQL查詢中Sending data占用大量時(shí)間怎么辦消耗時(shí)間:

MySQL查詢中Sending data占用大量時(shí)間怎么辦

加第二條索引:ALTER TABLE `transfer_item` ADD INDEX idx_to_id (`to_id`);

執(zhí)行計(jì)劃:

MySQL查詢中Sending data占用大量時(shí)間怎么辦消耗時(shí)間:

MySQL查詢中Sending data占用大量時(shí)間怎么辦

加第三條索引:ALTER TABLE `transfer_operation` ADD INDEX idx_transfer_id (`transfer_id`);

執(zhí)行計(jì)劃:

MySQL查詢中Sending data占用大量時(shí)間怎么辦消耗時(shí)間:

MySQL查詢中Sending data占用大量時(shí)間怎么辦

優(yōu)化完成。

tm表的條件字段數(shù)據(jù)分布不均勻,不建議加索引。

對(duì)條件字段添加索引后,Sending data消耗時(shí)間大幅下降。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“MySQL查詢中Sending data占用大量時(shí)間怎么辦”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!


新聞標(biāo)題:MySQL查詢中Sendingdata占用大量時(shí)間怎么辦
當(dāng)前路徑:http://weahome.cn/article/giocep.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部