關於大資料量查詢報表優化

2021-09-02 03:16:13 字數 834 閱讀 6103

針對資料量巨大的報表查詢,總結了一下幾個處理方法:

看乙個運用案例:多粒度(年月日,省、地市、熱點、ac、ap)下每天20w條,每月800w條,自由選擇35天內資料的查詢。

直接查詢頁面崩潰,運用了以下幾點,基本上能保證在1-2分鐘(100秒左右)內頁面相應載入。

[b]一:表分割槽[/b]

當某張表每天都有上十萬,百萬的資料量時,考慮每天建立乙個分割槽來儲存每天的資料。

[b]二:粒度匯聚[/b]

報表查詢中遇到多粒度分組查詢的,事先將粒度資料單獨匯聚成表,按粒度查詢。

[b]三:索引建立[/b]

給關鍵使用的幾個字段建立索引,注意不能使用like對索引字段操作,索引欄位也不能使用運算子,否則建立的索引不生效。

[b]四:分頁載入[/b]

由於查詢的資料量大,一定要用分頁載入的方式給頁面返回資料。需要注意的是分頁的返回條數也不要設定的太小,不然資料頁數處理增加也會影響sql速度。比如每頁30條資料,在資料量為20w的情況下,比每頁15條就快不少。另外注意的是,分頁其實分兩部分,一部分是count(*),另一部分就是查詢返回30條。

[b]五:並行度(/*+ parallel */ )[/b]

當資料量過大時還可以考慮開啟資料庫的並行度,這樣用資源空間換取時間。

建立oracle多執行緒:

select /*+ parallel(t ,64) */ nick,id from seller t

其中64 代表執行緒數,這個數最好與linux版本位數一致。

[b]六:加大neginx相應時間[/b]

通過以上5個步驟如果頁面相應時間還是比較長的話,頁面還是會崩潰掉,沒辦法只好設定neginx的響應時長了。

mysql大資料量分頁查詢優化

參考文章 mysql的分頁查詢十分簡單,但是當資料量大的時候一般的分頁就吃不消了。傳統分頁查詢 select c1,c2,cn from table limit n,m mysql的limit工作原理就是先讀取前面n條記錄,然後拋棄前n條,讀後面m條想要的,所以n越大,偏移量越大,效能就越差。1 盡...

mysql大資料量分頁查詢優化

參考文章 mysql的分頁查詢十分簡單,但是當資料量大的時候一般的分頁就吃不消了。傳統分頁查詢 select c1,c2,cn from table limit n,m mysql的limit工作原理就是先讀取前面n條記錄,然後拋棄前n條,讀後面m條想要的,所以n越大,偏移量越大,效能就越差。1 盡...

大資料量資料分頁查詢優化方案

在實際場景中會遇到這樣的一種情況 資料量很大,而且還要分頁查詢,如果資料量達到百萬級別之後,效能會急劇下降,導致查詢時間很長,甚至是超時。接下來我總結了兩種常用的優化方案,僅供參考。但是需要注意的是有個前提 主鍵id是遞增且資料有序。1 使用子查詢優化 這種方式先定位偏移位置的 id,然後往後查詢,...