Apakah DynamoDB mendukung secondary index?

Ya. DynamoDB mendukung dua jenis secondary index. Global Secondary Index (GSI) punya partition/sort key dan kapasitasnya sendiri (default 20 per tabel, eventually consistent). Local Secondary Index (LSI) berbagi partition key tabelnya dengan sort key yang berbeda, mendukung konsistensi kuat, dan harus didefinisikan saat tabel dibuat.

Global Secondary Index (GSI)

  • Punya partition dan sort key sendiri, terlepas dari milik tabelnya.
  • Punya throughput provisioned sendiri (atau kapasitas on-demand).
  • Hanya pembacaan eventually consistent.
  • Bisa ditambah atau dihapus kapan saja; kuota default 20 per tabel.

Sebuah GSI adalah cara Anda mencari item berdasarkan atribut di luar primary key tabelnya.

Local Secondary Index (LSI)

  • Berbagi partition key tabelnya, dengan sort key yang berbeda.
  • Berbagi throughput tabelnya.
  • Mendukung pembacaan strongly consistent.
  • Harus dibuat saat tabel dibuat dan tak bisa ditambahkan belakangan.

Dua perbedaan yang bisa Anda ukur

Pembacaan GSI tidak diam-diam diturunkan ketika Anda meminta konsistensi kuat. Ia gagal:

ValidationException: Consistent reads are not supported on global secondary indexes
HTTP 400

Query yang sama dengan ConsistentRead: true terhadap sebuah LSI berhasil, dan melaporkan ConsumedCapacity 1.0 sementara pembacaan eventually consistent atas item yang sama melaporkan 0.5. Konsistensi kuat tersedia pada LSI, dengan dua kali lipat read unit.

Perbedaan kedua ada pada penulisan, dan itulah yang muncul di tagihan. Memasukkan satu item identik berukuran 920 byte ke tiga tabel yang hanya berbeda dalam jumlah GSI yang mereka bawa:

0 GSIs   ConsumedCapacity 1   table 1
1 GSI    ConsumedCapacity 2   table 1, gsi1 1
2 GSIs   ConsumedCapacity 3   table 1, gsi1 1, gsi2 1

Setiap GSI yang mem-project atribut yang berubah adalah satu penulisan lagi yang Anda bayar. AWS menyatakan aturan yang ditunjukkan angka-angka itu: biaya tulisnya adalah "the sum of write capacity units consumed by writing to the base table and those consumed by updating the global secondary indexes". Projection KEYS_ONLY adalah cara Anda menjaga penulisan kedua itu tetap kecil.

Memilih di antara keduanya

Pakai GSI untuk pola akses baru dan fleksibilitas; pakai LSI saat Anda butuh konsistensi kuat pada urutan alternatif dalam partisi yang sama.

Pelajari lebih lanjut

Bandingkan keduanya di GSI vs LSI dan lihat index projection. Unduh DynoTable untuk melakukan query lewat index Anda.

Referensi

Terakhir diverifikasi 2026-07-13 terhadap dokumentasi resmi AWS yang ditautkan di atas; kuotanya diperiksa ulang 2026-07-28.

String error dan nilai ConsumedCapacity-nya ditangkap 2026-07-28 terhadap DynamoDB Local 3.3.0 via @aws-sdk/client-dynamodb 3.1095.0 dan merupakan keluaran mesin itu sendiri.

Bekerja dengan DynamoDB tanpa Console

Klien desktop DynamoDB yang cepat dan menjalankan SQL sungguhan yang tidak bisa dijalankan DynamoDB — JOINs, GROUP BY, agregasi — dengan editing visual dan agen AI pada kunci Bedrock milik Anda sendiri.

Uji coba gratis 30 hari, tanpa kartu kredit — lalu paket Free tanpa batas waktu.