Cloudflare Docs
Edit this page on GitHub
Set theme to dark (⇧+D)


Databases50,000 (Workers Paid) beta / 10 (Free)
Maximum database size2 GB (Workers Paid) beta / 500 MB (Free)
Maximum storage per account50 GB (Workers Paid) beta / 5 GB (Free)
Time Travel duration (point-in-time recovery)30 days (Workers Paid) / 7 days (Free)
Maximum Time Travel restore operations10 restores per 10 minute (per database)
Queries per Worker invocation (read subrequest limits)50 (Bundled) / 1000 (Unbound)
Maximum number of columns per table100
Maximum number of rows per tableUnlimited (excluding per-database storage limits)
Maximum string, BLOB or table row size1,000,000 bytes (1 MB)
Maximum SQL statement length100,000 bytes (100 KB)
Maximum bound parameters per query100
Maximum arguments per SQL function32
Maximum characters (bytes) in a LIKE or GLOB pattern50 bytes
Maximum bindings per Workers scriptApproximately 5,000 1
Maximum SQL query duration30 seconds

beta This is a beta-only limitation. The D1 team will increase the maximum storage per-database, storage per-account and number of databases for Paid plans during the course of D1’s public beta.

1 A single Worker script can have up to 1 MB of script metadata. A binding is defined as a binding to a resource, such as a D1 database, KV namespace, environmental variable or secret. Each resource binding is approximately 150-bytes, however environmental variables and secrets are controlled by the size of the value you provide. Excluding environmental variables, you can bind up to ~5,000 D1 databases to a single Worker script.