以前用的是mysql6.0.5版本,現在改用mysql5.7.20,同樣的資料庫,6.0.5版本電腦重啟后某個查詢約1-2秒,但用5.7.20版本同樣的資料庫作同樣的查詢需約12秒左右(第二次查詢速度很快),請問是什么原因?
uj5u.com熱心網友回復:
對比一下執行計劃,另外對比一下存盤引擎。uj5u.com熱心網友回復:
多表查詢,查詢陳述句很簡單:select jgh,mc,b.je,b.yz from table1 a,(select jgh,je,yz from table2) b where a.jgh=b.jgh,電腦重啟后首次查詢5.7.20比6.0.05慢很多,第二次查詢都很快,版本問題?uj5u.com熱心網友回復:
貼出EXPLAIN ,貼出SHOW CREATE TABLE以供分析。uj5u.com熱心網友回復:
查詢:SELECT a.kph,pzh,lx,dw,xh,xcgzj,djrq,bxrq,dqrq,b.yz,b.jz FROM clmx a,(SELECT yz,jz,kph FROM gdzc WHERE sjrq = '2018-01-31' AND zczt='正常') b WHERE a.kph=b.kphmysql6.0.5EXPLAIN:id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY a ALL \N \N \N \N 65
1 PRIMARY <derived2> ALL \N \N \N \N 5988 Using where; Using join buffer
2 DERIVED gdzc ref sjrq sjrq 4 15943 Using where
mysql5.7.20EXPLAIN:id select_type table partitions type possible_keys key key_len ref rows filtered Extra
1 SIMPLE a \N ALL PRIMARY \N \N \N 65 100 \N
1 SIMPLE gdzc \N ref sjrq,kph kph 23 gdzc.a.kph 10 1.36 Using where
uj5u.com熱心網友回復:
貼出SHOW CREATE TABLE以供分析。
貼出SHOW index from 以供分析。
樓主最好一次把需要的分析資訊貼出,否則一點點兒擠牙膏太麻煩了。
uj5u.com熱心網友回復:
大致原因找到了,gdzc表中kph,sjrq原建立兩個單獨索引,現改為復合索引后查詢速度由13秒提快到0.037秒,把原表也改為復合索引后查詢時間為0.002秒,老版本還是效率高些。
uj5u.com熱心網友回復:
6.0.5? 還是 5.6.0?uj5u.com熱心網友回復:
6.0.5與5.7.20,謝謝版主的提示轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/89481.html
標籤:MySQL
上一篇:VB Access group by,order by查詢速度超慢,求指點優化
下一篇:關于DCT變換影像壓縮的問題
