Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Memanfaatkan indeks jarang
Untuk setiap item dalam tabel, DynamoDB menulis entri indeks yang sesuai hanya jika nilai kunci urutan indeks berada dalam item tersebut. Jika kunci urutan tidak muncul di setiap item tabel, atau jika kunci partisi indeks tidak ada dalam item, indeks dianggap 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
Indeks sekunder global bersifat jarang secara default. Ketika membuat indeks sekunder global, Anda menentukan kunci partisi dan, secara opsional, kunci urutan. Hanya item di tabel dasar yang berisi atribut tersebut yang muncul dalam 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:
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:
Indeks sekunder global hanya berisi skor tinggi yang sering dikueri, yang merupakan sebagian kecil item di tabel dasar.