ClickHouse效能提公升 SQL使用規範

2021-10-24 16:32:07 字數 1015 閱讀 3958

反例:

正例:

理由:只查詢需要的字段可以減少磁碟io和網路io,提公升查詢效能

反例:

正例:

理由:虛擬列非常消耗資源浪費效能,拿到pv uv後在前端顯示時構造比率。

反例:

正例:

理由:基數太大會消耗過多的io和記憶體。

反例:

正例:

理由:減少磁碟io和網路io,提公升查詢效能

反例:

正例:

理由:無論是left join 、right join還是inner join永遠都是拿著右表中的每一條記錄到左表中查詢該記錄是否存在

反例:

正例:

理由:uniqcombined對去重進行了優化,通過近似去重提公升十倍查詢效能

反例:

正例:

理由:使用limit返回指定的結果集數量,不會進行向下掃瞄,大大提公升了查詢效率

反例:

create table scene_model

( id string,

scene_name string,

pv string,

create_time string

)engine = ...

正例:

create table scene_model

( id string,

scene_name string,

pv int32,

create_time date

)engine = ...

理由:

時間型別最終會轉換成數值型別進行處理,數值型別在執行效率和儲存上遠好過字串

假設分割槽欄位是day

反例:

正例:

理由:通過指定分割槽欄位會減少底層資料庫掃瞄的檔案數量,提公升查詢效能

反例:

正例:

理由:通過限制分組前結果集數量,查詢效能一般能提示數十倍,甚至上百倍

提公升軟體效能

提高系統的安全性和健壯性,資料庫伺服器和應用伺服器,就要考慮冗餘設計。保證系統的高可用和高可靠以及高併發。保證系統在出現故障時,及時切換正常工作,使用雙機熱備份。使用redis快取伺服器提高系統的效能。使用讀寫分離技術減輕資料訪問的壓力,提公升系統的使用者體驗。在資料庫的設計上來使用分庫 分表 分割...

提公升頁面效能

1.資源壓縮合併,減少http請求 2.非核心 非同步載入 非同步載入的方式 a.動態指令碼載入 b.defer c.async defer 在html解析完成之後才會執行,並按照載入順序執行 async 在載入完成之後立即執行,和載入順序無關。3.利用瀏覽器快取 快取的分為強快取和協商快取 強快取...

效能繼續提公升

嘿嘿,今天改bug,又發現了乙個效能問題。在顯示所有bug列表的列印頁面下,顯示800個bug居然要花26s的時間,看上去已經是另人難於忍受了。在顯示測試報告頁面,由於不需要顯示bug列表,因此,成績從18s一下子提公升到了0.8s,現在這個列印頁面需要將所有的bug都列印出來,需要顯示所有的bug...