大資料查詢優化方案

2021-07-03 16:06:22 字數 937 閱讀 7924

1 儲存過程

2 建索引

3 分割槽   把資料分成幾個區存放,搜尋的結果合併。做表分割槽,縮小查詢範圍(按乙個有效字段分割槽,比如按月份)

4 表空間

5 我們以前大資料量的解決方案是:把資料分批查出來,一次性查出來是沒有什麼好的解決辦法。

6 like 必定掃全表

7 硬體:公升級伺服器,有這麼多資料的應該不是小的應用,應該買個好點的伺服器。

8 用負載均衡,把乙個大表爭成幾個小表(垂直分表,把錶裡面的一些不常用的大字段資訊拿出來)

9 檢視

10 讀寫分立,做雙機,乙個讀,乙個寫

11 sql語句優化,這個注意點太多了,具體可以通過explain找出慢查詢(plsql的f5)

12 表字段盡量小,盡量迴避blob,text;varchar最好也少用

13 資料量達到海量的話,分布式集群處理了,······以下省略8000字

--查詢優化

常見優化查詢的方案有如下:

1,對查詢進行優化,應盡量避免全表掃瞄,首先應考慮在where及order by 涉及的列上建立索引。

2,應盡量避免在where子句中進行null的判斷,否則將導致查詢放棄進行索引進行全表掃瞄。可以在null上設預設值為0。

3,盡量避免在where子句中使用or來連線條件,否則將導致查詢放棄進行索引進行全表掃瞄,可以考慮使用union all替換。

4,in 和not in 要慎用,否則會導致全表掃瞄。能用between則不用in。

5,避免使用like 來進行模糊查詢,可以考慮使用全文檢索。

6,盡量避免在where子句中使用!=或<>操作符,否則會導致全表掃瞄。

7,使用檢視加速查詢。

8,能用distinct 則不用group by。

9,能用union all 則不用union。

10,避免在where子句中進行函式操作。

資料查詢優化

一 避免全表掃瞄 首先考慮在where及order by涉及的列上建立索引 避免在where子句中對字段進行null判斷這樣會導致全表掃瞄 二 避免出現where子句中對字段進行null值判斷 demo select id from t where num is null可以替換為select id...

面試題 大資料查詢怎麼優化?

對於百萬千萬量級別的資料進行查詢,如果查詢方式不合理的話,會嚴重影響系統的執行效能及伺服器的壓力。常見優化查詢的方案有如下 1,對查詢進行優化,應盡量避免全表掃瞄,首先應考慮在where及order by 涉及的列上建立索引。2,應盡量避免在where子句中進行null的判斷,否則將導致查詢放棄進行...

大資料查重去重方案及效能優化

最近做針對百萬級別的資料的去重工作,現抽空寫下筆記。做這個去重,是基於前同事的基礎上做改造,原來是用的simhash演算法做文字相似計算,上網查了下,simhash演算法是相對來說,在大資料領域比較受歡迎的查重演算法,話不多說,來一步步說下我的設計之路。一 先簡單介紹下simhash.傳統的hash...