Penggunaan indeks sekunder memerlukan ruang penyimpanan tambahan. Saat Anda menyisipkan data ke tabel data, sistem mungkin juga perlu menulis tabel indeks yang dibuat pada tabel tersebut. Selama proses ini, CUs baca dan tulis dikonsumsi. Topik ini menjelaskan aturan penagihan untuk indeks sekunder.
Untuk menggunakan indeks sekunder, diperlukan tabel indeks. Oleh karena itu, ruang penyimpanan tambahan diperlukan untuk menyimpan tabel indeks tersebut. Saat sistem menyisipkan data ke tabel data, sistem mungkin juga perlu menulis tabel indeks yang dibuat pada tabel data tersebut secara bersamaan. Selama proses ini, CUs baca dan tulis dikonsumsi.
Penagihan indeks sekunder mencakup komponen-komponen berikut: jumlah CUs baca dan tulis yang dikonsumsi untuk menulis tabel indeks, volume data yang disimpan dalam tabel indeks, serta volume data yang dibaca dari tabel indeks.
| Billable item | Description |
| Data storage | Ruang penyimpanan yang digunakan untuk menyimpan tabel data dan tabel indeksnya. |
| Read CUs consumed to write index tables | Jumlah CUs yang dikonsumsi oleh operasi baca untuk menghapus, menyisipkan, atau memperbarui baris indeks. |
| Write CUs consumed to write index tables | Jumlah CUs yang dikonsumsi untuk menyisipkan atau memperbarui baris indeks. |
| CUs consumed by regular read operations | Jumlah CUs yang dikonsumsi untuk membaca data dari tabel data atau tabel indeks melalui API. |
| CUs consumed by regular write operations | Jumlah CUs yang dikonsumsi untuk menyisipkan data ke tabel data melalui API. |
Aturan penagihan untuk penyimpanan, penulisan, dan pembacaan tabel indeks:
- Aturan penagihan untuk penyimpanan dan pembacaan tabel indeks sama dengan aturan untuk tabel data. Untuk informasi selengkapnya, lihat Billing overview.
- CUs dikonsumsi berdasarkan aturan berikut saat sistem menulis tabel indeks:
- Write CUs hanya dikonsumsi ketika baris indeks disisipkan atau diperbarui.
- Read CUs dikonsumsi ketika baris indeks dihapus, diperbarui, atau disisipkan. Jumlah read CUs sama dengan jumlah data yang dibaca dari kolom terindeks yang sesuai di tabel data.
Menghitung Jumlah Read CUs yang Dikonsumsi untuk Menulis Tabel Indeks
Saat Anda membuat indeks sekunder pada tabel data, read CUs dikonsumsi berdasarkan aturan berikut:
- Saat Anda menggunakan operasi PUT untuk menyisipkan baris data ke tabel data:
- Operasi PUT tidak menyisipkan data ke kolom atribut terindeks di tabel data, artinya tidak ada baris indeks yang disisipkan. Dalam kasus ini, satu read CU dikonsumsi.
- Operasi PUT menyisipkan data ke kolom atribut terindeks di tabel data, artinya baris indeks baru disisipkan. Dalam kasus ini, satu read CU dikonsumsi.
- Saat Anda menggunakan operasi PUT untuk menimpa baris di tabel data:
- Operasi PUT tidak memperbarui kolom atribut terindeks di tabel data. Dalam kasus ini, satu read CU dikonsumsi.
- Operasi PUT memperbarui kolom atribut terindeks di tabel data. Dalam kasus ini, read CUs dikonsumsi:
Bagi total jumlah data yang dibaca dari kolom atribut terindeks dengan empat, tidak termasuk kolom kunci primer. Jumlah CUs yang dikonsumsi sama dengan nilai hasil perhitungan yang dibulatkan ke atas ke bilangan bulat terdekat. Jika total jumlahnya 0 KB, satu CU dikonsumsi.
- Saat Anda menggunakan operasi UPDATE untuk menyisipkan baris data ke tabel data:
- Jika operasi UPDATE tidak menyisipkan data ke kolom terindeks di tabel data, tidak ada read CU yang dikonsumsi.
- Jika operasi UPDATE menyisipkan data ke kolom terindeks di tabel data, satu read CU dikonsumsi.
- Saat Anda menggunakan operasi UPDATE untuk memperbarui baris di tabel data:
- Jika operasi UPDATE tidak menyisipkan data ke kolom atribut terindeks di tabel data, tidak ada read CU yang dikonsumsi.
- Jika operasi UPDATE menyisipkan data ke kolom atribut terindeks di tabel data, read CUs dikonsumsi berdasarkan aturan berikut:
Bagi total jumlah data yang dibaca dari kolom terindeks dengan empat, tidak termasuk kolom kunci primer. Jumlah CUs yang dikonsumsi sama dengan nilai hasil perhitungan yang dibulatkan ke atas ke bilangan bulat terdekat. Jika total jumlahnya 0 KB, satu CU dikonsumsi.
- Saat Anda menggunakan operasi Delete untuk menghapus baris di tabel data, read CUs dikonsumsi berdasarkan aturan berikut:
Bagi total jumlah data yang dibaca dari kolom terindeks dengan empat, tidak termasuk kolom kunci primer. Jumlah CUs yang dikonsumsi sama dengan nilai hasil perhitungan yang dibulatkan ke atas ke bilangan bulat terdekat. Jika total jumlahnya 0 KB, satu CU dikonsumsi.
- Jika tabel data menggunakan primary key auto increment, penyisipan data ke tabel data tidak mengonsumsi read CUs apa pun. Memperbarui baris di tabel data yang menggunakan primary key auto increment mengonsumsi read CUs. Perhitungan CUs mengikuti aturan yang sama seperti operasi UPDATE.Catatan Kami menyarankan agar Anda menggunakan primary key auto increment untuk menyisipkan data ke tabel data guna mengurangi jumlah CUs yang dikonsumsi oleh tabel indeks.
Untuk tabel data yang tidak menggunakan primary key auto increment, satu read CU dikonsumsi jika operasi baca dilakukan pada kolom terindeks, meskipun tidak ada data yang diambil. Untuk tabel data yang menggunakan primary key auto increment, tidak ada operasi baca yang dilakukan pada kolom terindeks saat Anda menyisipkan data. Oleh karena itu, tidak ada read CU yang dikonsumsi.
Menghitung Jumlah Write CUs
Saat Anda menyisipkan data ke tabel data dan membuat indeks sekunder, write CUs dikonsumsi. Write CUs dikonsumsi berdasarkan aturan berikut:
- Jika Anda menyisipkan baris ke tabel data dan tidak ada data di tabel indeks yang diperbarui, tidak ada write CUs yang dikonsumsi.
- Jika Anda menyisipkan baris ke tabel data dan baris indeks baru disisipkan ke tabel indeks, write CUs dikonsumsi. Jumlah write CUs ditentukan oleh ukuran baris indeks yang disisipkan.
- Jika Anda menyisipkan baris ke tabel data dan baris indeks dihapus dari tabel indeks, write CUs dikonsumsi. Jumlah write CUs ditentukan oleh ukuran baris indeks yang dihapus.
- Jika Anda menyisipkan baris ke tabel data dan baris indeks di tabel indeks diperbarui, write CUs dikonsumsi. Jumlah write CUs ditentukan oleh ukuran baris indeks yang diperbarui.
- Jika Anda menyisipkan baris ke tabel data, baris indeks dihapus dari tabel indeks, dan baris indeks lain disisipkan ke tabel indeks, write CUs dikonsumsi. Jumlah write CUs ditentukan oleh total ukuran baris indeks yang dihapus dan disisipkan.
Aturan detail:
- Saat Anda menggunakan operasi PUT untuk menyisipkan baris data ke tabel data:
- Operasi PUT tidak menyisipkan data ke kolom atribut terindeks di tabel data, artinya tidak ada baris indeks yang disisipkan. Dalam kasus ini, tidak ada read CU yang dikonsumsi.
- Operasi PUT menyisipkan data ke kolom atribut terindeks di tabel data, artinya baris indeks baru disisipkan. Write CUs yang dikonsumsi untuk setiap tabel indeks:
Bagi total jumlah data dalam baris indeks yang disisipkan dengan empat. Jumlah CUs yang dikonsumsi sama dengan nilai hasil perhitungan yang dibulatkan ke atas ke bilangan bulat terdekat.
- Saat Anda menggunakan operasi PUT untuk menimpa baris di tabel data:
- Operasi PUT hanya memperbarui kolom kunci primer terindeks di tabel data. Dalam kasus ini, tidak ada write CUs yang dikonsumsi.
- Operasi PUT memperbarui kolom terindeks di tabel data. Write CUs dikonsumsi berdasarkan aturan berikut:
Semua indeks yang diperbarui oleh operasi PUT mengonsumsi sejumlah write CUs tertentu, kecuali sparse indexes.
- Saat Anda menggunakan operasi UPDATE untuk menyisipkan baris data ke tabel data:
- Jika operasi UPDATE tidak menyisipkan data ke kolom terindeks di tabel data, tidak ada write CUs yang dikonsumsi.
- Jika operasi UPDATE menyisipkan data ke kolom terindeks di tabel data, write CUs yang dikonsumsi untuk setiap tabel indeks:
- Jika operasi UPDATE menyisipkan baris indeks baru, write CUs dikonsumsi. Bagi total ukuran data dalam baris indeks dengan empat. Jumlah CUs yang dikonsumsi sama dengan nilai hasil perhitungan yang dibulatkan ke atas ke bilangan bulat terdekat.
- Jika tidak ada baris indeks yang disisipkan, tidak ada write CUs yang dikonsumsi.
- Saat Anda menggunakan operasi UPDATE untuk memperbarui baris di tabel data:
- Jika operasi UPDATE tidak memperbarui kolom atribut terindeks, tidak ada write CUs yang dikonsumsi.
- Jika operasi UPDATE memperbarui kolom atribut terindeks, write CUs yang dikonsumsi untuk setiap tabel indeks dihitung berdasarkan aturan berikut:
- Jika tabel indeks sudah berisi baris indeks yang dibuat berdasarkan baris yang akan diperbarui, delete CUs dikonsumsi. Jumlah delete CUs ditentukan oleh ukuran kunci primer terindeks dalam baris indeks yang dihapus.
- Jika baris indeks baru disisipkan berdasarkan baris yang diperbarui, write CUs dikonsumsi. Jumlah write CUs ditentukan oleh ukuran kunci primer terindeks dalam baris indeks yang disisipkan.
- Jika operasi UPDATE hanya memperbarui data atribut dalam baris indeks yang sudah ada tetapi tidak menyisipkan baris indeks baru, update CUs dikonsumsi.
Bagi total jumlah data dalam baris indeks dengan empat. Jumlah CUs yang dikonsumsi sama dengan nilai hasil perhitungan yang dibulatkan ke atas ke bilangan bulat terdekat.
- Saat Anda menggunakan operasi DELETE untuk menghapus baris di tabel data, write CUs dikonsumsi berdasarkan aturan berikut:
Jika tabel indeks sudah berisi baris indeks yang dibuat berdasarkan baris yang akan dihapus, write CUs dikonsumsi. Bagi total jumlah data dalam kolom terindeks yang sesuai dengan empat, tidak termasuk kolom kunci primer. Write CUs yang dikonsumsi sama dengan nilai hasil perhitungan yang dibulatkan ke atas ke bilangan bulat terdekat.
- Jika Anda menyisipkan data ke tabel data yang menggunakan primary key auto increment, write CUs dikonsumsi. Perhitungan write CUs mengikuti aturan yang sama seperti operasi PUT. Jika Anda memperbarui baris di tabel data yang menggunakan primary key auto increment, write CUs dikonsumsi. Perhitungan write CUs mengikuti aturan yang sama seperti operasi UPDATE.
Mengukur Ukuran Tabel Indeks
Ukuran tabel indeks diukur berdasarkan aturan yang sama seperti tabel data. Ukuran tabel indeks sama dengan total ukuran semua baris. Total ukuran baris sama dengan total ukuran kunci primer dan data atribut. Untuk informasi selengkapnya, lihat Data storage.
Menghitung Jumlah CUs yang Dikonsumsi untuk Membaca Tabel Indeks
Saat Anda menggunakan SDK, Konsol, atau metode lain seperti DLA untuk membaca tabel indeks, read CUs dikonsumsi. Jumlah read CUs dihitung berdasarkan aturan yang sama seperti saat membaca tabel data.
Contoh
Contoh berikut menggunakan tabel data yang memiliki dua tabel indeks untuk menjelaskan cara CUs dikonsumsi dalam kondisi yang berbeda.
Tabel data Table berisi dua kolom kunci primer PK0 dan PK1, serta tiga kolom pradefinisi Col0, Col1, dan Col2. Dua tabel indeks, Index0 dan Index1, dibuat pada tabel data tersebut. Index0 berisi tiga kunci primer Col0, PK0, dan PK1 serta satu kolom atribut Col2. Index1 berisi empat kunci primer Col1, Col0, PK0, dan PK1, serta tidak memiliki kolom atribut. Gunakan operasi UPDATE untuk memperbarui PK0 dan PK1.
- Jika baris tidak ada di tabel data:
- Memperbarui Col3 tidak mengonsumsi read atau write CUs.
- Memperbarui Col1 mengonsumsi CUs berikut:
- Satu read CU
- Tidak ada write CUs
- Memperbarui Col0 dan Col1 mengonsumsi CUs berikut:
- Satu read CU
- Index0 mengonsumsi write CUs. Jumlah write CUs ditentukan oleh total jumlah data yang disisipkan ke Col0, PK0, dan PK1. Index1 mengonsumsi write CUs. Jumlah write CUs ditentukan oleh total jumlah data yang disisipkan ke Col0, Col1, PK0, dan PK1.
- Jika baris sudah ada di tabel data:
- Memperbarui Col3 tidak mengonsumsi read atau write CUs.
- Memperbarui Col2 mengonsumsi CUs berikut:
- Read CUs dikonsumsi. Jumlah read CUs ditentukan oleh jumlah data yang dibaca dari Col0. Jika operasi UPDATE menyisipkan data ke Col0, satu CU dikonsumsi.
- Untuk Index0, jika operasi UPDATE menyisipkan data ke Col0, Index0 tidak mengonsumsi write CUs. Jika operasi UPDATE memperbarui data di Col0, Index0 mengonsumsi write CUs. Jumlah write CUs ditentukan oleh total jumlah data yang disisipkan ke Col0, PK0, PK1, dan Col2. Index1 tidak mengonsumsi write CUs.
- Memperbarui Col1 mengonsumsi CUs berikut:
- Read CUs dikonsumsi. Jumlah read CUs ditentukan oleh jumlah data yang dibaca dari Col0 dan Col1. Jika total jumlahnya 0 KB, satu CU dikonsumsi.
- Index0 tidak mengonsumsi write CUs. Untuk Index1, jika baris indeks disisipkan, write CUs dikonsumsi. Jumlah write CUs ditentukan oleh jumlah data yang dibaca dari Col0 dan disisipkan ke Col1, PK0, dan PK1. Untuk Index1, jika tidak ada data di Col0 yang diperbarui, tidak ada baris indeks yang disisipkan dan tidak ada write CUs yang dikonsumsi. Jika data di Col0 dan Col1 diperbarui, write CUs dikonsumsi untuk menghapus baris indeks yang sesuai. Jumlah write CUs ditentukan oleh total jumlah data yang dibaca dari Col0, Col1, PK0, dan PK1.