DynamoDB ikincil indeksleri destekliyor mu?

Evet. DynamoDB iki tür ikincil indeks destekler. Bir Global Secondary Index (GSI) kendi bölüm/sıralama anahtarına ve kapasitesine sahiptir (varsayılan olarak tablo başına 20, nihai tutarlı). Bir Local Secondary Index (LSI) ise tablonun bölüm anahtarını farklı bir sıralama anahtarıyla paylaşır, güçlü tutarlılığı destekler ve tablo oluşturulurken tanımlanmalıdır.

Global Secondary Index (GSI)

  • Tablonunkinden bağımsız, kendi bölüm ve sıralama anahtarı.
  • Kendi sağlanan verimi (ya da talep üzerine kapasitesi).
  • Yalnızca nihai tutarlı okumalar.
  • Her zaman eklenip kaldırılabilir; tablo başına varsayılan kota 20.

Bir GSI, öğeleri tablonun birincil anahtarı dışındaki bir özniteliğe göre aramanızın yoludur.

Local Secondary Index (LSI)

  • Tablonun bölüm anahtarını paylaşır, farklı bir sıralama anahtarıyla.
  • Tablonun verimini paylaşır.
  • Güçlü tutarlı okumaları destekler.
  • Tablo oluşturulurken yaratılmalıdır ve sonradan eklenemez.

Ölçebileceğiniz iki fark

Bir GSI okuması, güçlü tutarlılık istediğinizde sessizce aşağı düşmez. Başarısız olur:

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

Aynı sorgu, bir LSI'ya karşı ConsistentRead: true ile başarılı olur ve aynı öğenin nihai tutarlı okumasının 0,5 bildirdiği yerde ConsumedCapacity 1,0 bildirir. Güçlü tutarlılık bir LSI üzerinde mevcuttur — okuma biriminin iki katına.

İkinci fark yazmalardadır ve faturada görünen de odur. Yalnızca kaç GSI taşıdıkları bakımından farklılaşan üç tabloya aynı 920 baytlık öğeyi koymak:

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

Değişen bir özniteliği izdüşüren her GSI, ödediğiniz bir yazma daha demektir. AWS, sayıların gösterdiği kuralı belirtir: yazma maliyeti "the sum of write capacity units consumed by writing to the base table and those consumed by updating the global secondary indexes"tir. Bir KEYS_ONLY izdüşümü, o ikinci yazmayı küçük tutmanın yoludur.

Aralarında seçim yapmak

Yeni erişim desenleri ve esneklik için bir GSI'ya uzanın; aynı bölüm içinde alternatif bir sıralamada güçlü tutarlılığa ihtiyacınız olduğunda bir LSI'ya uzanın.

Daha derine inin

Onları GSI ile LSI içinde karşılaştırın ve indeks izdüşümlerine bakın. İndeksleriniz üzerinden sorgulamak için DynoTable'ı indirin.

Kaynaklar

En son 2026-07-13 tarihinde yukarıda bağlantısı verilen resmi AWS belgelerine karşı doğrulandı; kotalar 2026-07-28 tarihinde yeniden denetlendi.

Hata dizesi ve ConsumedCapacity değerleri, 2026-07-28 tarihinde @aws-sdk/client-dynamodb 3.1095.0 üzerinden DynamoDB Local 3.3.0'a karşı yakalandı ve motorun kendi çıktısıdır.

Console olmadan DynamoDB ile çalış

DynamoDB’nin çalıştıramadığı gerçek SQL’i çalıştıran hızlı bir DynamoDB masaüstü istemcisi — JOINs, GROUP BY, toplamalar — görsel düzenleme ve kendi Bedrock anahtarların üzerinde bir yapay zekâ aracısıyla.

30 günlük ücretsiz deneme, kredi kartı yok — ardından süre sınırı olmayan Ücretsiz plan.