

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Memanfaatkan indeks jarang
<a name="bp-indexes-general-sparse-indexes"></a>

Untuk item apa pun dalam tabel, DynamoDB menulis **entri indeks yang sesuai hanya jika atribut kunci indeks ada di** item tersebut. Untuk indeks sekunder global, ini berarti kunci partisi indeks harus ditentukan pada item, dan jika indeks juga memiliki kunci pengurutan, atribut itu harus ada juga. Jika salah satu atribut kunci hilang dari item, item tersebut tidak muncul dalam indeks. Indeks di mana hanya sebagian item dari tabel dasar yang muncul disebut indeks *jarang*.

Indeks renggang berguna untuk kueri pada subbagian kecil tabel. Misalnya, anggaplah Anda memiliki tabel untuk menyimpan semua pesanan pelanggan Anda, dengan atribut kunci berikut ini:
+ Kunci partisi: `CustomerId`
+ Kunci urutan: `OrderId`

Untuk melacak pesanan terbuka, Anda dapat memasukkan atribut bernama `isOpen` dalam item pesanan yang belum dikirimkan. Kemudian, setelah pesanan dikirimkan, Anda dapat menghapus atribut tersebut. Jika Anda kemudian membuat indeks pada `CustomerId` (kunci partisi) dan `isOpen` (kunci urutan), hanya pesanan dengan `isOpen` yang ditetapkan yang akan muncul di dalamnya. Apabila Anda memiliki ribuan pesanan dan hanya sejumlah kecil yang terbuka, mengkueri indeks pesanan terbuka tersebut akan lebih cepat dan lebih murah daripada memindai seluruh tabel.

Daripada menggunakan jenis atribut seperti `isOpen`, Anda dapat menggunakan atribut dengan nilai yang menghasilkan urutan pesanan yang berguna dalam indeks. Misalnya, Anda dapat menggunakan atribut `OrderOpenDate` yang diatur ke tanggal ketika setiap pesanan dilakukan, lalu menghapusnya setelah pesanan dipenuhi. Dengan begitu, saat Anda mengkueri indeks jarang, item dikembalikan dan diurutkan berdasarkan tanggal ketika setiap pesanan dilakukan.

## Contoh indeks jarang di DynamoDB
<a name="bp-indexes-sparse-examples"></a>

Indeks sekunder global bersifat jarang secara default. Ketika membuat indeks sekunder global, Anda menentukan kunci partisi dan, secara opsional, kunci urutan. Hanya item dalam tabel dasar yang berisi atribut kunci yang diperlukan muncul di indeks. Jika item tidak memiliki kunci partisi indeks — atau kunci pengurutan, ketika satu ditentukan — item tersebut dikecualikan dari indeks.

Dengan merancang indeks sekunder global menjadi jarang, Anda dapat menyediakannya dengan throughput tulis yang lebih rendah dibandingkan tabel dasar, tetapi tetap mencapai performa yang sangat baik.

Misalnya, aplikasi game dapat melacak semua skor setiap pengguna, tetapi umumnya hanya perlu mengkueri beberapa skor tinggi. Desain berikut menangani skenario ini secara efisien:

![\[Contoh GSI jarang.\]](http://docs.aws.amazon.com/id_id/amazondynamodb/latest/developerguide/images/SparseIndex_A.png)


Di sini, Rick telah memainkan tiga permainan dan mencapai status `Champ` di salah satunya. Padma telah memainkan empat permainan dan mencapai status `Champ` di dua di antaranya. Perhatikan bahwa atribut `Award` hanya ada pada item tempat pengguna mendapat penghargaan. Indeks sekunder global terkait akan seperti berikut ini:

![\[Contoh GSI jarang.\]](http://docs.aws.amazon.com/id_id/amazondynamodb/latest/developerguide/images/SparseIndex_B.png)


Indeks sekunder global hanya berisi skor tinggi yang sering dikueri, yang merupakan sebagian kecil item di tabel dasar.