PolarDB PostgreSQL版(兼容Oracle)提供了Ganos并行創(chuàng)建空間索引功能,本功能采用空間排序(GiST Sort)的方法,可將索引構建過程并行化,并大幅減少磁盤的讀寫操作,實現(xiàn)索引構建加速,您可通過本章節(jié)的內容體驗千萬級時空數據創(chuàng)建空間索引加速的過程。
背景信息
PostgreSQL數據庫非常適合用來存儲管理空間數據,然而隨著數據量的日益增長,性能問題也日益明顯,當數據量達到千萬級規(guī)模時,創(chuàng)建空間索引耗時會比較長。
前提條件
- 擁有阿里云賬號。
- 已創(chuàng)建PolarDB PostgreSQL版(兼容Oracle)集群,本章節(jié)以4核16 GB的PolarDB PostgreSQL版(兼容Oracle)集群為例。
注意事項
空間排序方法僅適用于點數據(Point),其他空間類型的數據使用此方法將會降低索引的查詢性能。
操作步驟
- 創(chuàng)建時空擴展并生成測試數據。
- 傳統(tǒng)方法創(chuàng)建空間索引。執(zhí)行以下命令,創(chuàng)建空間索引。
select now(); CREATE index ON test using GiST(geom); select now();
耗時統(tǒng)計:330.10 S
- 使用Ganos并行創(chuàng)建空間索引。執(zhí)行以下命令,使用Ganos并行創(chuàng)建空間索引。
set max_parallel_maintenance_workers=4; set maintenance_work_mem='1GB'; set polar_enable_gist_sort= on; select now(); CREATE index on test using GiST(geom); select now();
耗時統(tǒng)計:33.54 S
結論
使用Ganos并行創(chuàng)建空間索引,耗時比傳統(tǒng)方法創(chuàng)建空間索引提升了10倍左右。