您好,登錄后才能下訂單哦!
本篇內容介紹了“用sequoiasql-postgresql創建一個關聯表怎么優化”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
【用戶咨詢】
用sequoiasql-postgresql創建一個關聯表,存入500W數據。在創建索引的情況下,用pg進行簡單的group by查詢,平均耗時是50秒,是否可以進一步優化?
【問題描述】
1.集群部署情況
三臺主機對應一個分區組,每臺主機均部署有coord、cata、data節點。
2.表屬性
一個500w數據的關聯表b_qt_swdj和一個800w數據的pg原生表b_qt_swdj1,兩個表結構相同,一共39個字段。
3.sample和語句
對關聯表執行查詢:
①SELECT sw_scjy_yb,count(se_scjy_yb) as count FROM b_qt_swdj group by sw_scjy_yb;
②SELECT count(1) from b_qt_swdj;
對原生表執行查詢:
③SELECT sw_scjy_yb,count(se_scjy_yb) as count FROM b_qt_swdj1 group by sw_scjy_yb;
④SELECT count(1) from b_qt_swdj1;
用db內置sql執行①,耗時57秒。執行②,耗時33秒。
用pg執行①,耗時50秒。執行②,耗時44秒。
用pg執行③,耗時8秒。執行④,耗時3秒。
4.網絡帶寬
傳輸數據時約為46MB/S。
【解決辦法】
SELECT sw_scjy_yb,count(se_scjy_yb) as count FROM b_qt_swdj1 group by sw_scjy_yb;在pg耗時和使用sdb內置sql耗時差不多,都是50S左右。跟pg關系不大。
從pg的訪問計劃(見截圖三)來看,絕大部分耗時也是在select上。
建議一:應該考慮在sdb端對表做分區,提高數據抽取并發度去提高性能。
建議二:對于大表的統計推薦使用SparkSQL作為sql引擎。
“用sequoiasql-postgresql創建一個關聯表怎么優化”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。