Question: What is an access pattern in DynamoDB?

Answered by Rafal Wilinski
Last updated: October 23rd, 2026
Answer
An access pattern is one specific way your application reads or writes data, phrased as a concrete request: "get a customer by ID", "list a customer's orders from the last 30 days, newest first" or "find open orders for a warehouse". In DynamoDB you list your access patterns before you design the table, because each one should map to an efficient key-based operation:
GetItemwith the full primary key, orQueryon a partition key, optionally narrowed by a sort key condition, against the table or a secondary index.
If neither a primary key nor an index supports the lookup, consider changing the model or querying an exported copy. A Scan evaluates items across the table and is often expensive for repeated application lookups. That's why the relational habit of modeling entities first and writing queries later is reversed: in DynamoDB, the queries shape the keys.
Example for a small shop, using one table with generic PK and SK attributes:
- Get a customer profile:
GetItemwithPK = CUSTOMER#123andSK = PROFILE. - List a customer's orders, newest first:
QuerywithPK = CUSTOMER#123andSKbeginning withORDER#, where order sort keys look likeORDER#2026-10-23#987, andScanIndexForward: false. - Get an order by ID:
Querya GSI keyed onorderId. - List a warehouse's open orders by date:
Querya sparse GSI keyed onopenWarehouseandcreatedAt, attributes you set only while an order is open.
For each pattern, also note how often it runs and how fast it must be. A rare reporting query may not deserve an index at all; it can run against an export instead.
Tools help here. NoSQL Workbench supports data modeling, and Dynobase's Single-Table Designer lets you model entities, access patterns and GSIs visually. Worked examples are in the single-table design examples library.
Source: AWS DynamoDB documentation.
Other Common DynamoDB FAQ (with Answers)
- Does DynamoDB have read replicas?
- Are DynamoDB table names unique?
- Can QuickSight read DynamoDB?
- How to track changes to items in DynamoDB?
- Can Amazon Data Firehose write to DynamoDB?
- What are the differences between DynamoDB and Snowflake?
- Is DynamoDB PaaS or SaaS?
- Can I use a UUID as a DynamoDB partition key?
- Does DynamoDB support Multi-AZ?
- Can a DynamoDB range key be a GSI key?
- Is DynamoDB ACID compliant?
- Can you make a DynamoDB table case-insensitive?
- Why is DynamoDB better than MongoDB?
- What does DynamoDB Query return?
- Is DynamoDB HIPAA compliant?
Dynobase is a Professional GUI Client for DynamoDB
Start your 7-day free trial today
Product Features
DynamoDB Tools
- SSH GUI Client
- Chat With Cloud
- MongoDB GUI Client
- AWS Cost Monitoring
- DynamoDB Query Builder
- DynamoDB Code Examples
- DynamoDB Node.js Queries
- DynamoDB JSON Converter
- DynamoDB UUID Generator
- DynamoDB Local Admin GUI
- DynamoDB Pricing Calculator
- DynamoDB Single-Table Design
- Best DynamoDB GUI Clients
- Dynobase vs DynoTable