Name
locking_mode — Control how a database releases read/write locks
Common Usage
PRAGMA locking_mode; PRAGMA locking_mode =mode; PRAGMAdatabase.locking_mode; PRAGMAdatabase.locking_mode =mode;
Description
The locking_mode pragma controls how database file
locks are managed. The mode can either be NORMAL or EXCLUSIVE. In normal mode, the
database connection acquires and releases the appropriate locks
with each transaction. In exclusive mode, the locks are acquired
in the normal fashion, but are not released when a transaction
finishes.
Although exclusive locking mode prevents any other database connections from accessing the database, it also provides better performance. This may be an easy trade-off in situations such as some embedded environments, where it is very unlikely that multiple processes will ever attempt to access the same database.
Exclusive locking reduces the start-up cost of a transaction by eliminating the need to acquire the appropriate locks. It also allows SQLite to skip several file reads at the start of each transaction. For example, when SQLite starts a new transaction, it will normally reread the database header to verify that the database schema has not changed. This is not required if the database is in exclusive mode.
Since temporary and in-memory databases cannot be accessed by more than one database connection, they are always in exclusive mode. Any attempt to set these database types to normal mode will silently fail.
The behavior of the locking_mode pragma ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access