Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengelola indeks
penting
Pemberitahuan akhir dukungan: Pelanggan yang ada akan dapat menggunakan Amazon QLDB hingga akhir dukungan pada 07/31/2025. Untuk detail selengkapnya, lihat Memigrasi QLDB Buku Besar Amazon ke Amazon Aurora Postgre
Bagian ini menjelaskan cara membuat, mendeskripsikan, dan menjatuhkan indeks di AmazonQLDB. Kuota untuk jumlah indeks per tabel yang dapat Anda buat ditentukan dalam. Kuota dan batasan di Amazon QLDB
Membuat indeks
Seperti juga dijelaskan dalamMembuat tabel dan indeks, Anda dapat menggunakan CREATEINDEXpernyataan untuk membuat indeks pada tabel untuk bidang tingkat atas tertentu, sebagai berikut. Nama tabel dan nama bidang yang diindeks keduanya peka huruf besar/kecil.
CREATE INDEX ON VehicleRegistration (VIN)
CREATE INDEX ON VehicleRegistration (LicensePlateNumber)
Setiap indeks yang Anda buat pada tabel memiliki ID unik yang ditetapkan sistem. Untuk menemukan ID indeks ini, lihat bagian berikutMenggambarkan indeks.
penting
QLDBmembutuhkan indeks untuk mencari dokumen secara efisien. Tanpa indeks, QLDB perlu melakukan pemindaian tabel lengkap saat membaca dokumen. Hal ini dapat menyebabkan masalah kinerja pada tabel besar, termasuk konflik konkurensi dan batas waktu transaksi.
Untuk menghindari pemindaian tabel, Anda harus menjalankan pernyataan dengan klausa WHERE
predikat menggunakan operator kesetaraan (=
atauIN
) pada bidang yang diindeks atau ID dokumen. Untuk informasi selengkapnya, lihat Mengoptimalkan kinerja kueri.
Perhatikan kendala berikut saat membuat indeks:
-
Indeks hanya dapat dibuat pada satu bidang tingkat atas. Indeks komposit, bersarang, unik, dan berbasis fungsi tidak didukung.
-
Anda dapat membuat indeks pada setiap tipe data Ion, termasuk
list
danstruct
. Namun, Anda hanya dapat melakukan pencarian yang diindeks berdasarkan kesetaraan seluruh nilai Ion terlepas dari jenis Ion. Misalnya, saat menggunakanlist
tipe sebagai indeks, Anda tidak dapat melakukan pencarian yang diindeks oleh satu item di dalam daftar. -
Kinerja kueri ditingkatkan hanya ketika Anda menggunakan predikat kesetaraan; misalnya,
WHERE indexedField = 123
atau.WHERE indexedField IN (456, 789)
QLDBtidak menghormati ketidaksetaraan dalam predikat kueri. Akibatnya, rentang pemindaian yang difilter tidak diterapkan.
-
Nama bidang yang diindeks peka huruf besar/kecil dan dapat memiliki maksimal 128 karakter.
-
Pembuatan indeks di QLDB asinkron. Jumlah waktu yang dibutuhkan untuk menyelesaikan membangun indeks pada tabel yang tidak kosong bervariasi tergantung pada ukuran tabel. Untuk informasi selengkapnya, lihat Mengelola indeks.
Menggambarkan indeks
Pembuatan indeks di QLDB asinkron. Jumlah waktu yang dibutuhkan untuk menyelesaikan membangun indeks pada tabel yang tidak kosong bervariasi tergantung pada ukuran tabel. Untuk memeriksa status build indeks, Anda dapat melakukan kueri tabel katalog sistem information_schema.user_tables.
Misalnya, pernyataan berikut menanyakan katalog sistem untuk semua indeks di atas meja. VehicleRegistration
SELECT VALUE indexes FROM information_schema.user_tables info, info.indexes indexes WHERE info.name = 'VehicleRegistration'
{ indexId: "Djg2nt0yIs2GY0T29Kud1z", expr: "[VIN]", status: "ONLINE" }, { indexId: "4tPW3fUhaVhDinRgKRLhGU", expr: "[LicensePlateNumber]", status: "FAILED", message: "aws.ledger.errors.InvalidEntityError: Document contains multiple values for indexed field: LicensePlateNumber" }
Bidang indeks
-
indexId
— ID unik dari indeks. -
expr
— Jalur dokumen yang diindeks. Bidang ini adalah string dalam bentuk:[fieldName]
. -
status
— Status indeks saat ini. Status indeks dapat menjadi salah satu dari nilai berikut:-
BUILDING
— Secara aktif membangun indeks untuk tabel. -
FINALIZING
— Telah selesai membangun indeks dan mulai mengaktifkannya untuk digunakan. -
ONLINE
— Aktif dan siap digunakan dalam kueri. QLDBtidak menggunakan indeks dalam kueri sampai statusnya online. -
FAILED
— Tidak dapat membangun indeks karena kesalahan yang tidak dapat dipulihkan. Indeks dalam keadaan ini masih dihitung terhadap kuota indeks Anda per tabel. Untuk informasi selengkapnya, lihat Kesalahan umum. -
DELETING
— Secara aktif menghapus indeks setelah pengguna menjatuhkannya.
-
-
message
— Pesan kesalahan yang menjelaskan alasan indeks memilikiFAILED
status. Bidang ini hanya disertakan untuk indeks gagal.
Anda juga dapat menggunakan AWS Management Console untuk memeriksa status indeks.
Untuk memeriksa status indeks (konsol)
Masuk ke AWS Management Console, dan buka QLDB konsol Amazon di https://console.aws.amazon.com/qldb
. -
Di panel navigasi, pilih Buku Besar.
-
Dalam daftar Buku Besar, pilih nama buku besar yang indeksnya ingin Anda kelola.
-
Pada halaman detail buku besar, di bawah tab Tabel, pilih nama tabel yang indeksnya ingin Anda periksa.
-
Pada halaman detail tabel, cari kartu bidang yang diindeks. Kolom status Indeks menampilkan status saat ini dari setiap indeks pada tabel.
Menjatuhkan indeks
Gunakan DROP INDEX pernyataan untuk menjatuhkan indeks. Ketika Anda menjatuhkan indeks, itu dihapus secara permanen dari tabel.
Pertama, cari ID indeks dariinformation_schema.user_tables
. Misalnya, query berikut mengembalikan indexId
LicensePlateNumber
bidang diindeks di atas meja. VehicleRegistration
SELECT indexes.indexId FROM information_schema.user_tables info, info.indexes indexes WHERE info.name = 'VehicleRegistration' and indexes.expr = '[LicensePlateNumber]'
Kemudian, gunakan ID ini untuk menjatuhkan indeks. Berikut ini adalah contoh yang menjatuhkan ID indeks4tPW3fUhaVhDinRgKRLhGU
. ID indeks adalah pengidentifikasi unik yang harus dilampirkan dalam tanda kutip ganda.
DROP INDEX "4tPW3fUhaVhDinRgKRLhGU" ON VehicleRegistration WITH (purge = true)
catatan
Klausul WITH (purge = true)
ini diperlukan untuk semua DROP
INDEX
pernyataan, dan saat ini true
merupakan satu-satunya nilai yang didukung.
Kata kunci purge
adalah case sensitive dan harus semua huruf kecil.
Anda juga dapat menggunakan AWS Management Console untuk menjatuhkan indeks.
Untuk menjatuhkan indeks (konsol)
Masuk ke AWS Management Console, dan buka QLDB konsol Amazon di https://console.aws.amazon.com/qldb
. -
Di panel navigasi, pilih Buku Besar.
-
Dalam daftar Buku Besar, pilih nama buku besar yang indeksnya ingin Anda kelola.
-
Pada halaman detail buku besar, di bawah tab Tabel, pilih nama tabel yang indeksnya ingin Anda jatuhkan.
-
Pada halaman detail tabel, cari kartu bidang yang diindeks. Pilih indeks yang ingin Anda jatuhkan, lalu pilih Drop index.
Kesalahan umum
Bagian ini menjelaskan kesalahan umum yang mungkin Anda temui saat membuat indeks, dan menyarankan solusi yang mungkin.
catatan
Indeks yang memiliki status FAILED
masih dihitung terhadap kuota indeks Anda per tabel. Indeks yang gagal juga mencegah Anda memodifikasi atau menghapus dokumen apa pun yang menyebabkan pembuatan indeks gagal di tabel.
Anda harus secara eksplisit menjatuhkan indeks untuk menghapusnya dari kuota.
- Dokumen berisi beberapa nilai untuk bidang yang diindeks:
fieldName
. -
QLDBtidak dapat membangun indeks untuk nama bidang yang ditentukan karena tabel berisi dokumen dengan beberapa nilai untuk bidang yang sama (yaitu, nama bidang duplikat).
Anda harus terlebih dahulu menjatuhkan indeks yang gagal. Kemudian, pastikan bahwa semua dokumen dalam tabel hanya memiliki satu nilai untuk setiap nama bidang sebelum mencoba kembali pembuatan indeks. Anda juga dapat membuat indeks untuk bidang lain yang tidak memiliki duplikat.
QLDBjuga mengembalikan kesalahan ini jika Anda mencoba menyisipkan dokumen yang berisi beberapa nilai untuk bidang yang sudah diindeks di atas meja.
- Melebihi batas indeks: Tabel
tableName
sudah memilikin
indeks, dan tidak dapat membuat lebih banyak. -
QLDBmemberlakukan batas lima indeks per tabel, termasuk indeks gagal. Anda harus menjatuhkan indeks yang ada sebelum membuat yang baru.
- Tidak ada indeks yang ditentukan dengan pengidentifikasi:
indexId
. -
Anda mencoba untuk menjatuhkan indeks yang tidak ada untuk tabel yang ditentukan dan kombinasi ID indeks. Untuk mempelajari cara memeriksa indeks yang ada, lihatMenggambarkan indeks.