Cara Mendapatkan Ukuran dan Jumlah Item Tabel DynamoDB
Tidak ada SELECT COUNT(*) yang bisa Anda arahkan dengan murah ke sebuah tabel
DynamoDB. DynamoDB memberi Anda dua jawaban yang sangat berbeda untuk "seberapa
besar tabel ini?": sebuah estimasi gratis yang bisa basi hingga enam jam,
dan sebuah hitungan eksak yang berbiaya pembacaan penuh atas tabelnya.
Sebagian besar kebingungan "kenapa jumlah Item saya salah?" berasal dari
memilih yang satu sambil mengharapkan perilaku yang lain.
Bagaimana cara mendapatkan jumlah Item dan ukuran sebuah tabel DynamoDB?
Panggil DescribeTable: ia mengembalikan ItemCount dan TableSizeBytes
secara gratis, tetapi "DynamoDB memperbarui nilai ini kira-kira setiap enam
jam. Perubahan terbaru mungkin belum tercermin dalam nilai ini"
(AWS API reference).
Untuk angka eksak, jalankan sebuah Scan dengan --select COUNT — ia
mengembalikan hanya hitungannya, tetapi membaca (dan menagih) setiap Item.
Sebuah GUI seperti DynoTable menampilkan estimasinya di setiap
tabel dan bisa menghitung hitungan eksak sesuai permintaan.
| Anda ingin | Gunakan | Biaya | Kesegaran |
|---|---|---|---|
| Perkiraan kasar jumlah + ukuran, gratis | DescribeTable | tidak ada (panggilan metadata) | basi ~6 jam |
| Hitungan total eksak | Scan dengan Select COUNT | membaca seluruh tabel | live |
| Hitungan eksak untuk satu key | Query dengan Select COUNT | membaca Item yang cocok | live |
| Hitungan subset yang difilter | Scan/Query + filter + COUNT | membaca semua yang di-scan | live |
Metode 1: DescribeTable (gratis, basi ~6 jam)
DescribeTable adalah pencarian metadata — ia tidak membaca Item, jadi ia
tidak mengonsumsi read capacity, dan ia membawa dua angka yang Anda cari:
aws dynamodb describe-table --table-name Orders \
--query 'Table.[ItemCount, TableSizeBytes]'Keduanya datang dengan peringatan yang sama, langsung dari
API reference:
"DynamoDB memperbarui nilai ini kira-kira setiap enam jam. Perubahan terbaru
mungkin belum tercermin dalam nilai ini." Jadi tabel yang baru saja Anda
bulk-load bisa melaporkan ItemCount: 0 selama berjam-jam — angkanya tidak
salah, ia sebuah snapshot.
Respons yang sama juga membawa angka per-indeks: setiap GSI dan LSI
melaporkan ItemCount dan IndexSizeBytes-nya sendiri dengan irama enam jam
yang sama. Membandingkan jumlah Item sebuah
dengan milik tabelnya adalah pemeriksaan kesehatan gratis yang bagus — ia
memberi tahu Anda berapa banyak Item yang benar-benar membawa key indeksnya.
Metode 2: hitungan eksak dengan Scan + Select COUNT
Ketika "kira-kira, per tadi pagi" tidak cukup baik, hitunglah sungguhan:
aws dynamodb scan --table-name Orders --select COUNTFakta yang perlu diketahui sebelum Anda menjalankannya, semuanya dari Scan API reference:
COUNT"mengembalikan jumlah Item yang cocok, alih-alih Item yang cocok itu sendiri" — trafik jaringan lebih sedikit, tetapi "ini menggunakan jumlah read capacity unit yang sama dengan mengambil Item-nya". Hitungan eksak atas tabel 100 GB adalah pembacaan 100 GB di tagihan Anda.- Sebuah request tunggal tetap berhenti di 1 MB data yang di-scan;
Countdi respons "hanya mengembalikan hitungan Item yang spesifik untuk satu request scan". CLI mengikutiLastEvaluatedKeydan menjumlahkan halaman-halamannya untuk Anda; di kode SDK Anda me-loop dan menjumlahkan — lihat paginasi. - Pada tabel besar, bagi pekerjaannya dengan sebuah
parallel scan (
--segment/--total-segments) dan jumlahkan hitungan per-segmennya.
Menghitung sebuah subset
- Item di bawah satu partition key:
Querydengan--select COUNT— membaca hanya Item milik key itu, jadi semurah datanya kecil. Ini cara yang benar untuk menghitung sebuah . - Item yang cocok dengan sebuah filter: tambahkan sebuah
FilterExpression— tetapi ingat hitungan yang ditagihkan kepada Anda adalahScannedCount, bukanCount: DynamoDB memfilter setelah membaca, jadi "hitung order yang diarsipkan" lewat scan berfilter membayar untuk setiap order.ScannedCounttinggi di sampingCountkecil adalah tanda tangan sebuah filter yang ingin menjadi GSI — lihat strategi filtering.
Untuk pertanyaan yang lebih kaya — hitungan per status, jumlah, rata-rata —
DynamoDB sama sekali tidak punya GROUP BY; solusi-solusinya ada di
count, sum & agregat.
Ukuran tabel dan jumlah Item di DynoTable
DynoTable menaruh kedua jawaban di tempat yang sudah Anda pandangi. Setiap tabel yang terbuka punya tombol Stats (ikon bar-chart) di toolbar tab; panelnya menampilkan:
- Primary key dan secondary index — bentuk tabel dalam sekali pandang.
- Items · Size · Avg item — estimasi
DescribeTablemilik DynamoDB sendiri, diberi label sebagai estimasi, dengan peringatan enam-jam-nya hanya satu hover jauhnya. - Index table — sebuah sampling scan satu-klik yang menemukan setiap
atribut yang benar-benar dibawa Item Anda (termasuk path bersarang seperti
commonData.status), dengan progres live. Ia menggerakkan autocomplete field dan sebuah ekspor TypeScript / Zod / JSON Schema hasil inferensi, dan ia menimbulkan biaya baca DynamoDB normal — aplikasinya mengatakannya di muka.

Dan untuk angka eksaknya, asisten AI bawaan menghitung hitungan, jumlah, dan rincian per-grup atas seluruh tabel sesuai permintaan — ia membaca setiap Item yang cocok alih-alih men-sampling satu halaman, dan ia bertanya sebelum menjalankan apa pun yang berbiaya read capacity.
FAQ
Kenapa jumlah Item DynamoDB saya salah?
Ia tidak salah — ia basi. ItemCount (dan TableSizeBytes) menyegarkan diri
"kira-kira setiap enam jam", jadi penulisan dan penghapusan terbaru belum
tercermin. Ringkasan tabel di console menampilkan angka DescribeTable yang
sama, dengan jeda yang sama.
Bagaimana cara menghitung baris di DynamoDB secara eksak?
aws dynamodb scan --table-name X --select COUNT — CLI menelusuri seluruh
tabel halaman demi halaman dan menjumlahkan hitungan per-halamannya. Ia eksak
tetapi menagih read capacity yang sama dengan mengambil setiap Item.
Apakah DescribeTable gratis? Ia tidak mengonsumsi read capacity — ia panggilan metadata, bukan pembacaan data, jadi mem-polling-nya tidak akan menyentuh throughput tabel Anda.
Bagaimana cara menemukan ukuran satu Item? DynamoDB memetering berdasarkan ukuran Item (dibulatkan ke atas per 1 KB ditulis / 4 KB dibaca). Tempelkan sebuah Item ke kalkulator ukuran item untuk melihat ukuran tertagihnya, dan lihat batas Item 400 KB untuk plafonnya.
Apakah jumlah Item memengaruhi tagihan saya?
Penyimpanan ditagih berdasarkan TableSizeBytes, dan request berdasarkan
ukuran Item × jumlah request — bukan berdasarkan jumlah Item secara langsung.
Masukkan angka tabel Anda ke kalkulator harga
untuk melihat gambaran bulanannya lintas mode on-demand dan provisioned.
Ingin bentuk tabel, estimasi, dan field terindeks hanya satu klik jauhnya? Unduh DynoTable dan buka panel Stats pada tabel mana pun.


