It depends KV is a million times cheaper if you actually use it to its full storage amounts which ar

It depends KV is a million times cheaper if you actually use it to its full storage amounts which arent even possible on D1 given the limits of each row unless you use multiple rows which would be annoying to do

Also one thing to note a SELECT can technically do writes and reads and afaik a SELECT will never be only 1 row read even if you only attempt to read 1 row it will always be at least 2.

KV also supports an unlimited amount of reads/writes per second (though write limit to 1/s to the same key). KV is also cached so the read performance will be way faster for frequently access values compared to D1.

D1 will always be limited in the number of reads/writes it can do and it will probably be way more on you to figure out partitioning once that is available. You could of course add cache to at the very least help with the performance of reads.

Theres also the fact that D1 is not a GA database yet so it also has way more strict limits atm especially around total amount of data you can store.
Was this page helpful?