Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Memanfaatkan indeks jarang
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
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:
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.