Greenplum點查(按PK查詢)效能與提升空間
標籤
PostgreSQL , Greenplum , 點查 , 按PK查詢
背景
點查,基於PK的查詢或者OLTP類查詢,實際上並不是GPDB 擅長的,GPDB擅長的是海量的OLAP。
不過在企業、政府等視窗服務類業務,併發實際上並不高,如果GPDB的點查效能達到一定的效能時,實際上也能滿足這類場景的需求。
測試
下面是一組測試,造10億條測試資料,按PK查詢。
create table t_pk(id int primary key, info text, crt_time timestamp);
postgres=# insert into t_pk select id, md5(random()::text), clock_timestamp() from generate_series(1,1000000000) t(id);
INSERT 0 1000000000
使用pgbench壓測,GPDB點查效能如下,達到了接近1萬TPS,實際上已經滿足大多數的企業、政府等視窗服務類業務的查詢需求。
transaction type: ./test.sql
scaling factor: 1
query mode: simple
number of clients: 64
number of threads: 64
duration: 120 s
number of transactions actually processed: 1076112
latency average = 7.136 ms
latency stddev = 16.734 ms
tps = 8931.155844 (including connections establishing)
tps = 8933.619173 (excluding connections establishing)
script statistics:
- statement latencies in milliseconds:
0.002 set id random(1,1000000000)
7.135 select * from t_pk where id=:id;
同一臺物理機,PostgreSQL的點查效能如下,超過了100萬tps。
transaction type: ./test.sql
scaling factor: 1
query mode: prepared
number of clients: 64
number of threads: 64
duration: 120 s
number of transactions actually processed: 126137940
latency average = 0.061 ms
latency stddev = 0.032 ms
tps = 1051029.358638 (including connections establishing)
tps = 1051103.770277 (excluding connections establishing)
script statistics:
- statement latencies in milliseconds:
0.001 set id random(1,1000000000)
0.060 select * from t_pk where id=:id;
當然,這裡並不是要PK的意思,只是說GPDB還有很大的提升空間。
GPDB 5.x的版本,據說點查效能已經提升到5萬+的tps了。
滿足視窗類查詢場景完全沒有問題,GPDB可以作為一個OLTP+OLAP(偏OLAP)的資料庫來使用,滿足企業、政府等視窗服務類業務,海量資料的分析與實時查詢的需求。
PG和GPDB如何選擇?
《PostgreSQL 規格評估 – 微觀、巨集觀、精準 多視角估算資料庫效能(選型、做預算不求人)》
《空間|時間|物件 圈人 + 透視 – 暨PostgreSQL 10與Greenplum的對比和選擇》
GPDB的寫入效能與選擇
《Greenplum insert的效能(單步批量copy) – 暨推薦使用gpfdist、阿里雲oss外部表並行匯入》
相關文章
- Greenplum點查詢的優化(分佈鍵)優化
- oracle 跨庫查詢greenplum慢Oracle
- filter的pk進行多值查詢操作Filter
- Mysql按時間分組查詢(每天|每月|每年)MySql
- 子查詢與join效能差異
- 一個使用JDBC按Date查詢查詢的問題JDBC
- 離線查詢與線上查詢
- 查詢與排序02,折半查詢排序
- 線段樹(1)建樹、單點修改、單點查詢、區間查詢和例題
- 查詢oracle效能SQLOracleSQL
- 提高SQL查詢效能SQL
- SQL查詢效能分析SQL
- with as 查詢效能記載
- 查詢一個表插入資料的時間,按BLOCK時間BloC
- oralce 壓縮表與heap表儲存空間與查詢效能比較
- 查詢與排序01,線性查詢,時間複雜度,演算法排序時間複雜度演算法
- 日期區間查詢
- 檔案批次查詢複製匯出,按檔名批次查詢檔案,按檔案內容批次查詢檔案
- EntityFramework優化:查詢效能Framework優化
- JPA時間段查詢
- MySQL查詢時間段MySql
- oracle表空間查詢Oracle
- mysql 查詢undo空間MySql
- 表空間大小查詢
- 表空間查詢資訊
- 線性時間查詢
- SQL時間段查詢SQL
- 空間修改及查詢
- jpa動態查詢與多表聯合查詢
- 閃回版本查詢與閃回事務查詢
- 【TUNE_ORACLE】Oracle檢查點(二)檢查點效能Oracle
- 查詢效能提升3倍!Apache Hudi 查詢優化了解下?Apache優化
- 樹狀陣列的區間查詢與區間修改陣列
- 樹狀陣列單點更新和區間查詢陣列
- Oracle與Mysql的高階查詢與難點sqlOracleMySql
- 物件點查詢和中括號查詢的區別物件
- MySQL 查詢效能分析之 ExplainMySqlAI
- 效能優化之分頁查詢優化