Indeks GiST (Generalized Search Tree) mempercepat kueri spasial pada data trajectory. Anda dapat membuat indeks GiST pada kolom yang menyimpan data trajectory.
Sintaksis
CREATE INDEX [index_name] ON table_name USING GIST(traj_col [operator_family]);| Parameter | Wajib | Deskripsi |
|---|---|---|
index_name | Tidak | Nama indeks. |
table_name | Ya | Nama tabel yang berisi kolom trajectory. |
traj_col | Ya | Nama kolom trajectory yang akan diindeks. |
operator_family | Tidak | Operator family yang menentukan sumbu dan jenis kueri yang didukung oleh indeks. Nilai default: trajgist_ops_multi. Untuk menyesuaikannya, gunakan parameter ganos.trajectory.index_split_config. |
Indeks GiST mempercepat kueri yang menggunakan fungsi-fungsi berikut: ST_ndIntersect, ST_ndDWithin, ST_ndContains, dan ST_ndWithin.
Pilih operator family
Setiap operator family mengindeks kombinasi sumbu tertentu (x, y, z, t) dan mendukung jenis kueri yang sesuai. Pilih operator family yang sesuai dengan sumbu yang difilter oleh kueri Anda.
| Operator family | Sumbu yang diindeks | Jenis kueri yang didukung |
|---|---|---|
trajgist_ops_z | z | Kueri sumbu z |
trajgist_ops_t | t | Kueri sumbu t |
trajgist_ops_2d | x, y | Kueri sumbu x/y |
trajgist_ops_2dt | x, y, t | Kueri hanya x/y, hanya t, dan x/y/t |
trajgist_ops_3d | x, y, z | Kueri hanya x/y, hanya z, dan x/y/z |
trajgist_ops_3dt | x, y, z, t | Semua jenis kueri yang didukung oleh lima family di atas |
trajgist_ops_multi | Beberapa bounding box | Mempercepat kueri; memerlukan lebih banyak waktu dan penyimpanan untuk pembuatan dibandingkan family lainnya |
Memilih operator family:
Kueri hanya pada sumbu t:
trajgist_ops_tKueri pada sumbu x/y dan t secara bersamaan:
trajgist_ops_2dt(satu indeks, bukan dua indeks terpisah)Kueri pada semua sumbu:
trajgist_ops_3dtUntuk cakupan kueri maksimal dengan peningkatan kebutuhan penyimpanan dan waktu pembuatan indeks:
trajgist_ops_multi
Contoh
Buat indeks pada sumbu t:
CREATE INDEX ON table_name USING GIST(traj_col trajgist_ops_t);Buat indeks pada sumbu x dan y:
CREATE INDEX ON table_name USING GIST(traj_col trajgist_ops_2d);Buat indeks pada sumbu x, y, dan t:
CREATE INDEX ON table_name USING GIST(traj_col trajgist_ops_2dt);Langkah selanjutnya
ganos.trajectory.index_split_config — Konfigurasikan aturan yang digunakan untuk memisahkan trajectory saat pengindeksan GiST diterapkan.