全部产品
Search
文档中心

Lindorm:ALTER INDEX

更新时间:Jul 02, 2025

Anda dapat menggunakan sintaks ALTER INDEX untuk mengubah kolom dalam indeks pencarian dan mengubah status indeks pencarian atau indeks sekunder. Jika Anda perlu mengimpor atau memperbarui sejumlah besar data, disarankan untuk menonaktifkan indeks terlebih dahulu guna memastikan efisiensi impor atau mempercepat pembaruan.

Sintaks

alter_index_statement  ::=  ALTER INDEX [IF EXISTS] index_identifier
                            ON table_identifier
                            {
                              ADD

 COLUMNS '(' alter_key_expression ')'
                              |
                              alter_state_expression  
                            }
                            [ASYNC]
alter_key_expression   ::=  index_key_definition [ (',' index_key_definition)* ]
index_key_definition   ::=  {
                                  column_identifier [ DESC ]
                                  | column_identifier'(' column_options ')' 
                            }
alter_state_expression ::=  { ACTIVE | INACTIVE }
Penting
  • Untuk indeks sekunder, sintaks ALTER INDEX hanya dapat digunakan untuk mengubah status indeks.

  • Untuk indeks pencarian, Anda dapat menggunakan sintaks ALTER INDEX untuk menambahkan kolom indeks dengan atribut yang ditentukan.

Parameter yang didukung

LindormTable mendukung dua jenis indeks berikut: indeks sekunder dan indeks pencarian. Tabel berikut menjelaskan parameter dari sintaks ALTER INDEX yang didukung oleh indeks sekunder dan indeks pencarian.

Parameter

Indeks sekunder

Indeks pencarian

ADD COLUMNS

️️️️️️️✖️

alter_state_expression

Parameter

ADD COLUMNS

Anda tidak dapat menambahkan kolom ke indeks sekunder.

Ketika menambahkan satu atau lebih kolom ke indeks pencarian, Anda dapat mengonfigurasi atribut untuk kolom tersebut. Misalnya, klausa ADD COLUMNS(c1,c3,p1(type=text,analyzer=ik)) menambahkan tiga kolom (c1, c3, dan p1) ke indeks pencarian, dengan kolom p1 menggunakan analisis IK. Untuk informasi tentang atribut kunci indeks yang dapat ditambahkan, kunjungi tab Atribut Kunci Indeks untuk Indeks Pencarian (option_definition) di bagian Ekspresi Kunci Indeks (index_key_expression) topik CREATE INDEX.

alter_state_expression

Parameter ini menentukan pernyataan yang digunakan untuk mengubah status indeks. Tabel berikut menjelaskan status indeks yang didukung.

State

Deskripsi

ACTIVE

Indeks aktif.

INACTIVE

Indeks tidak aktif.

DISABLED

Indeks dinonaktifkan. Jika Anda menggunakan sintaks untuk mengubah indeks dalam status ini, status indeks menjadi INACTIVE.

Contoh

Dalam contoh berikut, tabel dasar dan indeks dibuat dengan mengeksekusi pernyataan berikut:

-- Buat tabel dasar.
CREATE TABLE test (
  p1 VARCHAR NOT NULL,
  p2 INTEGER NOT NULL,
  c1 BIGINT,
  c2 DOUBLE,
  c3 VARCHAR,
  c4 TIMESTAMP,
  PRIMARY KEY(p1, p2)
) WITH (CONSISTENCY = 'strong', MUTABILITY='MUTABLE_LATEST');

-- Buat indeks sekunder bernama idx1.
CREATE INDEX idx1 ON test(c1 desc) include(c3,c4) WITH (COMPRESSION='ZSTD');

-- Buat indeks pencarian bernama idx2.
CREATE INDEX IF NOT EXISTS idx2 USING SEARCH ON test(p1, p2, c2);

Nonaktifkan indeks

Nonaktifkan indeks idx1.

ALTER INDEX idx1 ON test DISABLED;

Verifikasi Hasil

Eksekusi pernyataan SHOW INDEX FROM test; untuk memverifikasi hasil perubahan.

Aktifkan indeks yang dinonaktifkan

ALTER INDEX IF EXISTS idx1 ON test ACTIVE;

Verifikasi Hasil

Eksekusi pernyataan SHOW INDEX FROM test; untuk memeriksa status indeks.

Tambahkan kolom ke indeks pencarian

Anda dapat mengeksekusi pernyataan berikut untuk menambahkan kolom c1 dan c3 ke indeks pencarian idx2 dan mengonfigurasi atribut kolom c3.

ALTER INDEX IF EXISTS idx2 ON test ADD COLUMNS(c1,c3(type=text,analyzer=ik));
Catatan

Data historis tidak disinkronkan secara otomatis ke kolom indeks baru. Jika Anda ingin data historis dari kolom-kolom ini diindeks, bangun ulang indeks pencarian. Untuk informasi lebih lanjut, lihat Bangun Ulang Indeks Pencarian.

Verifikasi Hasil

Eksekusi pernyataan SHOW INDEX FROM test; untuk melihat kolom indeks.

Bangun ulang indeks pencarian

Anda dapat menyinkronkan data lengkap ke indeks pencarian yang sesuai.

  • Pembuatan indeks pencarian sinkron: Pernyataan ALTER INDEX dikembalikan setelah indeks dibangun.

    ALTER INDEX IF EXISTS idx2 ON test REBUILD;
  • Pembuatan indeks pencarian asinkron: Pernyataan ALTER INDEX dikembalikan segera tanpa memedulikan apakah indeks telah dibangun.

    ALTER INDEX IF EXISTS idx2 ON test REBUILD ASYNC;