Wie zählt man Items in DynamoDB?

Nutze Select: 'COUNT' auf einer Query oder einem Scan, um passende Items zu zählen, ohne sie zurückzugeben. Jede Antwort zählt nur bis zu 1 MB Gescanntes, du musst also mit LastEvaluatedKey paginieren und die Count-Werte für eine Gesamtsumme addieren. Für eine ungefähre Gesamtzahl der Tabelle liest du ItemCount aus DescribeTable. Für eine gruppierte Zählung — oder ein SUM/AVG über eine Spalte — führt die SQL Workbench von DynoTable COUNT und GROUP BY als eine einzige Abfrage aus und erledigt die Paginierung für dich.

Passende Items exakt zählen

Setze Select auf COUNT bei einer Query (für einen Partition Key) oder einem Scan (ganze Tabelle). Die Antwort liefert Count und ScannedCount, aber keine Item-Daten. Übersteigen die gescannten Daten 1 MB, stoppt die Operation und liefert LastEvaluatedKey — ruf weiter auf und addiere Count, bis er fehlt. Beachte: Zählen ist nicht billiger als Lesen — COUNT verbraucht dieselbe Lesekapazität, die auch das Zurückgeben der Items verbrauchen würde.

Count vs. ScannedCount

  • Count — Items, die auf dieser Seite deinen Key-/Filterbedingungen entsprechen.
  • ScannedCount — Items, die vor dem Filtern untersucht wurden. Eine Filter Expression engt die Ergebnisse ein, verringert aber nicht das Gescannte (und auch nicht dessen Kosten).

COUNT ist kein Rabatt, gemessen

„Zählen kostet dasselbe wie Lesen" lässt sich leicht behaupten und leicht bezweifeln — hier ist es also, auf einer Tabelle mit 40 Items von je rund 3 KB (insgesamt 120.700 Bytes), jeder Aufruf mit ReturnConsumedCapacity: 'TOTAL':

AnfrageCountScannedCountConsumedCapacity
Query mit Select: 'COUNT'404015
Query, die die Items zurückgibt404015
Scan, Select: 'COUNT', Filter trifft die Hälfte204015

Die dritte Zeile ist die interessante. Der Filter halbiert Count, lässt ScannedCount unberührt und bewegt die Rechnung um nichts.

15 ist die Zahl, die du vorhersagen würdest: 120.700 Bytes runden auf 30 Vier-Kilobyte-Read-Einheiten auf, halbiert, weil eine Query letztendlich konsistent ist, solange du nichts anderes verlangst.

Die billige Näherung

DescribeTable liefert ItemCount, eine tabellenweite Schätzung, die etwa alle sechs Stunden aktualisiert wird. Sie ist kostenlos und sofort da, aber nicht in Echtzeit — gut für Dashboards, nicht für exakte Summen.

Eine Warnung, falls du gegen DynamoDB Local testest: Es aktualisiert ItemCount sofort. 40 Items zu schreiben und dort DescribeTable aufzurufen liefert direkt 40. Der echte Dienst tut das nicht — Aktualitätslogik, die lokal besteht, kann in der Produktion sechs Stunden danebenliegen.

Zählen und aggregieren mit DynoTable

Die rohe API gibt dir COUNT, aber kein GROUP BY, SUM oder AVG — Gruppieren und Summieren passieren normalerweise in deinem Anwendungscode. Die SQL Workbench von DynoTable ergänzt sie: Schreib SELECT COUNT(*), SUM(total) oder eine gruppierte Zählung, und sie führt die Paginierungsschleife für dich aus und verfeinert die Zahl, während die Seiten hereinströmen. Sie liest weiterhin über DynamoDB, es gelten also dieselben Lesekapazitätskosten — aber du schreibst eine Abfrage statt einer Schleife und bekommst gruppierte und summierte Ergebnisse, die die API nicht direkt liefern kann.

Tiefer einsteigen

Lies Zählen, summieren und aggregieren in DynamoDB und baue Zähl-Abfragen mit dem Expression Builder. Lade DynoTable herunter, um Zählungen und Aggregate (COUNT, SUM, GROUP BY) gegen deine Tabellen auszuführen.

Referenzen

Zuletzt verifiziert am 2026-07-13 gegen die oben verlinkte offizielle AWS-Dokumentation.

Die Kapazitätswerte wurden am 2026-07-28 gegen DynamoDB Local 3.3.0 (amazon/dynamodb-local:latest) via @aws-sdk/client-dynamodb 3.1095.0 reproduziert. DynamoDB Local ist nicht der Dienst; die oben notierte ItemCount-Abweichung ist eine Stelle, an der sie sich unterscheiden.

Mit DynamoDB ohne die Console arbeiten

Ein schneller DynamoDB-Desktop-Client, der das echte SQL ausführt, das DynamoDB nicht kann — JOINs, GROUP BY, Aggregationen — mit visueller Bearbeitung und einem KI-Agenten auf deinen eigenen Bedrock-Schlüsseln.

30 Tage kostenlos testen, keine Kreditkarte — danach der Kostenlos-Tarif ohne Zeitlimit.