全部产品
Search
文档中心

PolarDB:Pengindeksan TrajGiST

更新时间:Jul 02, 2025

Topik ini menjelaskan pengindeksan TrajGiST, ekstensi dari pengindeksan GiST. Anda dapat membuat indeks TrajGiST pada kolom yang menyimpan data lintasan.

Informasi latar belakang

TrajGiST memiliki beberapa keunggulan dibandingkan GiST:

  • TrajGiST menawarkan metode yang lebih baik untuk memperkirakan overhead indeks. Jika lebih dari satu indeks dibuat, TrajGiST dapat memilih indeks secara lebih efisien dibandingkan GiST.
  • TrajGiST mendukung kompatibilitas ke atas untuk indeks. Jika hasil akurat tidak dapat diperoleh karena indeks tidak memberikan informasi yang cukup, Anda tetap dapat memperoleh hasil bergranularitas kasar melalui pemindaian berbasis indeks. Sebagai contoh, jika Anda telah membuat indeks hanya pada sumbu t tetapi ingin memanggil fungsi ST_{2DT}Intersects, Anda dapat menyaring lintasan di luar rentang waktu tertentu menggunakan indeks pada sumbu t.

Sintaksis

CREATE INDEX [index_name] on table_name USING TRAJGIST(traj_col [operator_family]);
  • index_name: nama indeks (opsional).
  • table_name: nama tabel tempat kolom tersebut berada.
  • traj_col: nama kolom.
  • operator_family: keluarga operator yang digunakan untuk membuat indeks. Nilai default: trajgist_ops_multi. Anda dapat menggunakan parameter ganos.trajectory.index_split_config untuk menentukan keluarga operator (opsional).
Catatan Indeks yang dibuat membantu mempercepat kueri yang dijalankan oleh operator dan fungsi berikut: ST_ndIntersect, ST_ndDWithin, ST_ndContains, dan ST_ndWithin.

Keluarga operator yang didukung

Tabel berikut menggambarkan keluarga operator yang didukung oleh TrajGiST.

Keluarga operatorDeskripsi
trajgist_ops_zMembuat indeks pada sumbu z. Jenis indeks ini mendukung kueri yang hanya mencakup sumbu z.
trajgist_ops_tMembuat indeks pada sumbu t. Jenis indeks ini mendukung kueri yang hanya mencakup sumbu t.
trajgist_ops_2dMembuat indeks pada sumbu x dan y. Jenis indeks ini mendukung kueri yang hanya mencakup sumbu x dan y.
trajgist_ops_2dtMembuat indeks pada sumbu x, y, dan t. Jenis indeks ini mendukung kueri yang mencakup sumbu x, y, dan t.
trajgist_ops_3dMembuat indeks pada sumbu x, y, dan z. Jenis indeks ini mendukung kueri yang mencakup sumbu x, y, dan z.
trajgist_ops_3dtMembuat indeks pada sumbu x, y, z, dan t. Jenis indeks ini mendukung semua kueri yang didukung oleh lima keluarga operator sebelumnya.
trajgist_ops_multiMembuat indeks pada beberapa kotak pembatas untuk mempercepat kueri. Namun, sistem memerlukan lebih banyak waktu dan penyimpanan untuk membuat indeks.
Catatan TrajGiST memungkinkan pembuatan indeks pada satu kolom. Namun, TrajGiST tidak mendukung pembuatan indeks pada beberapa kolom jika kolom-kolom tersebut menyimpan jenis data selain data lintasan.