sqlite.org
Appropriate Uses For SQLitesqlite.org › whentouse
Excerpt
If there are many client programs sending SQL to the same database over a network, then use a client/server database engine instead of SQLite. SQLite will work over a network filesystem, but because of the latency associated with most network filesystems, performance will not be great. Also, file locking logic is buggy in … A good rule of thumb is to avoid using SQLite in situations where the same database will be accessed directly (without an intervening application server) and simultaneously from many computers over a network. - **High-volume Websites** SQLite will normally work fine as the database backend to a website. But if the website is write-intensive or is so busy that it requires multiple servers, then consider using an enterprise-class client/server database engine instead of SQLite. … - **High Concurrency** SQLite supports an unlimited number of simultaneous readers, but it will only allow one writer at any instant in time. For many situations, this is not a problem. Writers queue up. Each application does its database work quickly and moves on, and no lock lasts for more than a few dozen milliseconds. But there are some applications that require more concurrency, and those applications may need to seek a different solution.
Source URL
https://sqlite.org/whentouse.htmlRelated Pain Points
Unsafe network filesystem access causes locking and data corruption
8SQLite was designed for local file access and does not scale horizontally across networked filesystems (NFS, SMB). Using SQLite on network filesystems can cause locking issues, performance degradation, and data corruption, severely limiting deployment options for distributed or cloud-based applications.
SQLite file-level locking causes write concurrency bottlenecks
8SQLite uses file-level locking that locks the entire database during write operations, preventing concurrent writes. This becomes a critical bottleneck in applications with background workers, asynchronous operations, or high-frequency write patterns, and can easily lead to deadlocks.