全部產品
Search
文件中心

PolarDB:GanosBase Trajectory常用功能

更新時間:Nov 21, 2024

本文介紹GanosBase Trajectory常用功能。

使用合適的時空索引

合適的索引能加快查詢速度,需要根據應用情境的要求來構建合適的索引。可針對軌跡資料類型構建以下索引:

  • 空間索引:只針對軌跡的空間範圍建立索引,適合只查詢軌跡空間範圍情況。

  • 時間索引:只針對軌跡的時間範圍建立索引,適合只查詢軌跡時間範圍情況。

  • 時空複合索引:建立時空聯合索引,適合時間和空間同時過濾查詢。

--建立基於函數的空間索引,加速空間過濾
create index tr_spatial_geometry_index on trajtab using gist (st_trajectoryspatial(traj));


--建立基於函數的時間段索引,加速時間過濾
create index tr_timespan_time_index on trajtab using gist (st_timespan(traj));

--建立基於函數的軌跡起止時間
create index tr_starttime_index on trajtab using btree (st_starttime(traj));
create index tr_endtime_index on trajtab using btree (st_endtime(traj));


--首先建立btree_gist擴充
create extension btree_gist;

--建立btree_gist 起始時間、終止時間、空間複合索引
create index tr_traj_test_stm_etm_sp_index on traj_test using gist (st_starttime(traj),st_endtime(traj),st_trajectoryspatial(traj));

採用合理的分區表

隨著使用時間的增加,資料庫中的軌跡資料量也不斷增加,導致資料庫索引變大,查詢變慢。您可考慮採用分區表的模式降低單表資料量。

使用分區表請參見PolarDB文檔中分區表簡介

減少使用字串類型屬性

軌跡屬性中如有大量的字串屬性,會導致儲存空間浪費和效能下降。

  • 如果字串為固定內容,可以轉換為整型進行枚舉,建議在程式中進行轉換;

  • 如果無法避免使用字串類型屬性,可指定字串類型預設長度,避免空間浪費。

    設定字串類型預設長度方法如下:

    -- 設定字串類型預設長度為32
    Set ganos.trajectory.attr_string_length = 32;

採用批量軌跡產生模式

使用批量軌跡點產生軌跡模式,避免採取單個軌跡點追加模式。

採用最佳化壓縮模式

lz4 壓縮演算法是一種優秀的壓縮演算法,具有更高的壓縮率和更快的執行速度。如果要啟用lz4壓縮演算法,設定方法如下:

-- 設定使用lz4 壓縮
Set toast_compression_use_lz4 = true; 

-- 使用pg預設壓縮演算法
Set toast_compression_use_lz4 = false;

如果要對整個資料庫預設採用lz4壓縮演算法,設定方法如下:

-- 資料庫使用lz4壓縮
Alter database dbname Set toast_compression_use_lz4 = true;

-- 資料庫使用預設壓縮
Alter database dbname Set toast_compression_use_lz4 = false;