All Products
Search
Document Center

Lindorm:ALTER INDEX

Last Updated:Mar 29, 2026

Memodifikasi indeks yang sudah ada pada tabel LindormTable. Gunakan ALTER INDEX untuk menambahkan kolom ke search index, mengubah status search index atau secondary index, atau membangun ulang search index.

Untuk memaksimalkan throughput write selama impor data massal atau pembaruan, nonaktifkan indeks yang terpengaruh sebelum operasi, lalu aktifkan kembali setelahnya.

Sintaksis

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 }

Operasi yang didukung

Tabel berikut menunjukkan operasi mana saja yang tersedia untuk setiap jenis indeks.

OperasiSecondary indexSearch index
ADD COLUMNSTidak didukungDidukung
Ubah status indeksDidukungDidukung

Parameter

ADD COLUMNS

Menambahkan satu atau beberapa kolom ke search index. Anda dapat mengonfigurasi atribut khusus pencarian untuk setiap kolom secara inline.

Contoh: ADD COLUMNS(c1, c3, p1(type=text, analyzer=ik)) menambahkan tiga kolom dan menerapkan alat analisis IK ke p1.

Untuk daftar lengkap atribut yang dapat dikonfigurasi, lihat atribut kunci indeks untuk search index dalam topik CREATE INDEX.

Penting

ADD COLUMNS tidak didukung untuk secondary index.

Catatan

Data historis tidak disinkronkan secara otomatis ke kolom indeks yang baru ditambahkan. Untuk mengindeks data yang sudah ada, bangun ulang search index setelah menambahkan kolom.

alter_state_expression

Mengubah status indeks. Gunakan ini untuk mengaktifkan atau menonaktifkan indeks.

StatusDeskripsi
ACTIVEIndeks aktif.
INACTIVEIndeks tidak aktif.
DISABLEDIndeks dinonaktifkan. Menjalankan ALTER INDEX pada indeks dengan status ini akan mengubah statusnya menjadi INACTIVE.

Contoh

Semua contoh menggunakan tabel dasar dan indeks berikut:

-- Buat tabel utama
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 secondary index idx1
CREATE INDEX idx1 ON test(c1 desc) include(c3,c4) WITH (COMPRESSION='ZSTD');

-- Buat search index idx2
CREATE INDEX IF NOT EXISTS idx2 USING SEARCH ON test(p1, p2, c2);

Nonaktifkan indeks

ALTER INDEX idx1 ON test DISABLED;

Verifikasi hasil

SHOW INDEX FROM test;

Periksa apakah idx1 menampilkan status DISABLED dalam output.

Aktifkan indeks yang dinonaktifkan

ALTER INDEX IF EXISTS idx1 ON test ACTIVE;

Verifikasi hasil

SHOW INDEX FROM test;

Periksa apakah idx1 menampilkan status ACTIVE dalam output.

Tambah kolom ke search index

Pernyataan berikut menambahkan kolom c1 dan c3 ke search index idx2, serta mengonfigurasi c3 untuk menggunakan pencarian teks lengkap dengan alat analisis IK.

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

Data historis di c1 dan c3 tidak diindeks secara otomatis. Untuk menyertakan data yang sudah ada, bangun ulang search index setelah operasi ini.

Verifikasi hasil

SHOW INDEX FROM test;

Periksa apakah c1 dan c3 muncul dalam daftar kolom indeks untuk idx2.

Bangun ulang search index

Membangun ulang menyinkronkan semua data tabel yang sudah ada ke dalam search index.

  • Bangun ulang sinkron — pernyataan hanya mengembalikan respons setelah proses bangun ulang selesai.

    ALTER INDEX IF EXISTS idx2 ON test REBUILD;
  • Bangun ulang asinkron — pernyataan langsung mengembalikan respons. Proses bangun ulang berlanjut di latar belakang.

    ALTER INDEX IF EXISTS idx2 ON test REBUILD ASYNC;