All Products
Search
Document Center

PolarDB:Global secondary indexes

Last Updated:Mar 29, 2026

Global secondary indexes (GSIs) memungkinkan Anda menambahkan dimensi sharding ke tabel PolarDB-X sehingga kueri pada kolom yang bukan kunci shard tidak memerlukan pemindaian cross-shard penuh. Setiap GSI didukung oleh tabel indeks yang disinkronkan oleh PolarDB-X dengan tabel utama menggunakan transaksi XA.

Cara kerja

Dalam database terdistribusi, setiap tabel logis dibagi menjadi beberapa shard berdasarkan kunci shard. Ketika sebuah kueri melakukan filter pada kolom yang bukan kunci shard, PolarDB-X harus memindai semua shard—yaitu menjalankan kueri cross-shard. Seiring pertumbuhan ukuran tabel dan lalu lintas, pemindaian semacam ini menyebabkan kueri menjadi lambat dan kolam koneksi habis.

GSI mengatasi masalah ini dengan memelihara tabel indeks terpisah yang di-shard berdasarkan kolom yang diindeks. PolarDB-X mengarahkan kueri langsung ke shard yang relevan dalam tabel indeks, lalu hanya mengambil baris yang sesuai dari tabel utama bila diperlukan.

Kemampuan utama

KemampuanDeskripsi
Dimensi sharding tambahanIndeks kolom selain kunci shard tabel utama untuk mengarahkan kueri tanpa pemindaian cross-shard
Indeks unik globalMenerapkan batasan unik di seluruh shard
Konsistensi kuatTransaksi XA menjaga sinkronisasi antara tabel indeks dan tabel utama setiap saat
Kolom yang dicakupMenyertakan kolom tambahan dalam tabel indeks untuk menghindari lookup ke tabel utama
Perubahan skema onlineMenambahkan GSI tanpa mengunci tabel utama
Petunjuk indeksMenentukan indeks mana yang akan digunakan; PolarDB-X menentukan apakah diperlukan lookup ke tabel utama

FAQ

Masalah apa saja yang diatasi oleh GSIs?

Ketika kolom yang Anda kueri berbeda dari kunci shard tabel utama, PolarDB-X menjalankan kueri cross-shard. Pada skala besar, hal ini menyebabkan kueri menjadi lambat dan kolam koneksi habis. GSI mengurangi kueri cross-shard dengan menambahkan dimensi sharding alternatif, sehingga kueri dapat menargetkan shard tertentu dalam tabel indeks alih-alih memindai semua shard.

Saat membuat GSI, pilih kunci shard yang berbeda dari kunci shard tabel utama. Lihat Use global secondary indexes untuk detailnya.

Apa perbedaan antara GSI dan local secondary index (LSI)?

GSI menyimpan baris indeks pada shard yang berbeda dari baris data. GSI menentukan shard mana yang menyimpan data yang relevan dan mengarahkan kueri ke sana, sehingga memungkinkan kueri efisien melintasi batas shard.

LSI menyimpan baris indeks pada shard yang sama dengan baris data. Di PolarDB-X 1.0, LSI secara spesifik merujuk pada indeks secondary MySQL pada tabel fisik. Ketika PolarDB-X 1.0 mengarahkan kueri ke satu shard menggunakan GSI, LSI pada shard tersebut dapat lebih meningkatkan performa kueri di dalam shard tersebut.

Langkah selanjutnya