天天看點

【重新發現PostgreSQL之美】- 13 brin 時序索引

背景

場景:

  • 物聯網、遊戲、金融、證券、車聯網等場景, appendonly的高并發資料寫入, 需要高效的按時間區間進行資料統計分析.

挑戰:

  • 寫入量大, 傳統btree索引對寫入的RT影響大, 導緻性能下降嚴重.
  • 普通btree索引存儲空間占用較大.
  • 普通btree索引采用連結清單存儲, 邏輯上有序, 而實體離散, 加上IO有prefetch, 使得按btree的索引範圍查詢将占用大量IO通道. 範圍查詢效率差.

PG解決方案:

  • PG采用堆表存儲, 使用時序索引, 每連續的N個資料塊存儲min,max val. 時序索引隻有btree的幾百分之一大小. 并且支援快速的範圍查詢.
  • 其他資料庫産品采用聚集存儲無法實作時序索引, 因為聚集存儲本身必須按PK組織, 在資料塊層面已經沒有時序順序了.

202105/20210507_05.md 

《PostGIS空間索引(GiST、BRIN、R-Tree)選擇、優化- 2》

202103/20210326_02.md 

《PostgreSQL 14 preview - BRIN (典型IoT 時序場景) 塊級索引支援bloom filter - 随機,大量distinct value, 等值查詢》

202103/20210326_01.md 

《PostgreSQL 14 preview - BRIN (典型IoT 時序場景) 塊級索引支援multi-range min-max [s] - 分段範圍索引》

202103/20210324_01.md 

《PostgreSQL 14 preview - brin 索引記憶體優化》

201803/20180323_05.md 

《PostgreSQL 11 preview - BRIN索引接口功能擴充(BLOOM FILTER、min max分段)》

201711/20171107_25.md 

《HTAP資料庫PostgreSQL 場景與性能測試之24 - (OLTP) 物聯網- 時序資料并發寫入(含時序索引BRIN)》

201708/20170824_01.md 

《PostgreSQL BRIN索引的pages_per_range選項優化與核心代碼優化思考》

201708/20170823_01.md 

《萬億級電商廣告- brin黑科技帶你(最低成本)玩轉毫秒級圈人(視覺挖掘姊妹篇) - 阿裡雲RDS PostgreSQL, HybridDB for PostgreSQL最佳實踐》

201708/20170820_01.md 

《PostGIS空間索引(GiST、BRIN、R-Tree)選擇、優化- 阿裡雲RDS PostgreSQL最佳實踐》

201706/20170617_01.md 

《自動選擇正确索引通路接口(btree,hash,gin,gist,sp-gist,brin,bitmap...)的方法》

201706/20170611_02.md 

《PostgreSQL 并行寫入堆表,如何保證時序線性存儲- BRIN索引優化》

201704/20170405_01.md 

《PostgreSQL 10.0 preview 功能增強- BRIN 索引更新smooth化》

201702/20170219_01.md 

《PostgreSQL 聚集存儲與BRIN索引- 高并發行為、軌迹類大吞吐資料查詢場景解說》

201604/20160414_01.md 

《PostgreSQL 物聯網黑科技- 瘦身幾百倍的索引(BRIN index)》

201505/20150526_01.md 

《PostgreSQL 9.5 new feature - lets BRIN be used with R-Tree-like indexing strategies For "inclusion" opclasses》

201504/20150419_01.md 

《PostgreSQL 9.5 new feature - BRIN (block range index) index》

202105/20210518_02.md 

《結合PostgreSQL, MADlib, Tensorflow 實作機器學習是時序分析. 使用本地資料, 不需要move data.》

202105/20210514_01.md 

《PostgreSQL 時序資料庫插件timescaledb 2.2.1 通過custom plan provider接口實作index skip scan, 加速distinct, last_value, first_value等大表稀疏值快速搜尋, 最快上萬倍性能提升》

202105/20210509_01.md 

《PostgreSQL 應用開發解決方案最佳實踐系列課程- 6. 時空、時态、時序、日志等軌迹系統》

202104/20210429_03.md 

《PostgreSQL - 時序、IoT類場景- time_bucket 分析函數- 内置date_bin》

202104/20210429_02.md 

《PostgreSQL - 時序、IoT類場景- first_value , last_value , agg , cte , window , recursive》

202104/20210429_01.md 

《PostgreSQL - 時序、IoT類場景- 自定義histogram函數, 繪制資料分布柱狀圖- cte window range width_bucket format plpgsql》

202104/20210428_03.md 

《PostgreSQL 時序資料庫設計最佳實踐- 關聯citus,columnar,partition,timescaledb,壓縮,高速寫,parallel append 多分區并行查詢,分區》

202103/20210325_01.md 

《PostgreSQL 14 preview - date_bin 任意起點, 任意bucket(interval) split bucket align 統計- 時序場景(iot, 金融等),關聯timescaledb》

202004/20200412_03.md 

《一款相容PostgreSQL協定的時序資料庫- QuestDB》

201912/20191218_01.md 

《PostgreSQL 時序資料庫timescaledb支援compress排程》

201910/20191027_04.md 

《PostgreSQL timescaledb插件pg_prometheus - PostgreSQL作為prometheus的時序資料庫必備插件》

201905/20190509_01.md 

《pipelinedb 團隊加入Confluent,TimescaleDB時序插件支援準實時聚合(類流式計算)》

201804/20180420_01.md 

《[未完待續] PostgreSQL + timescaleDB + Prometheus 物聯網時序資料監控組合》

201801/20180129_01.md 

《PostgreSQL 時序資料庫插件timescaleDB 部署實踐(含例子紐約TAXI資料透視分析) - PostGIS + timescaleDB => PG時空資料庫》

201712/20171225_01.md 

《PostgreSQL 時序資料案例- 時間流逝, 自動壓縮(時間粒度老化), 同比\環比》

201711/20171107_16.md 

《HTAP資料庫PostgreSQL 場景與性能測試之15 - (OLTP) 物聯網- 查詢一個時序區間的資料》

201708/20170823_02.md 

《時序業務,求最新值(從7秒到7毫秒的優化之旅)- 阿裡雲RDS PostgreSQL最佳實踐》

201707/20170705_01.md 

《PostgreSQL 海量時序資料(任意滑動視窗實時統計分析) - 傳感器、人群、物體等對象跟蹤》

201707/20170702_01.md 

《PostgreSQL FDW 僞列實作時序資料存儲自動分區- FUNCTION pushdown》

201705/20170518_01.md 

《(流式、lambda、觸發器)實時處理大比拼- 物聯網(IoT)\金融,時序處理最佳實踐》

201704/20170417_01.md 

《PostgreSQL 時序最佳實踐- 證券交易系統資料庫設計- 阿裡雲RDS PostgreSQL最佳實踐》

201704/20170409_05.md 

《時序資料庫有哪些特點? TimescaleDB時序資料庫介紹》

201611/20161128_01.md 

《時序資料合并場景加速分析和實作- 複合索引,視窗分組查詢加速,變态遞歸加速》