Change record status: 
Project: 
Introduced in branch: 
9.5.x
Introduced in version: 
9.5.0
Description: 

The SQLite database driver now begins transactions with BEGIN IMMEDIATE TRANSACTION instead of the prior default of simply BEGIN, for which SQLite used the DEFERRED transaction behavior. The change from DEFERRED locking to IMMEDIATE locking was necessary to mitigate deadlocks.

As a result, sites running SQLite with write-heavy workloads (such as running tests or running migrations) may experience a performance penalty, due to the write lock being held for longer during the transaction. This penalty is larger for PHP 7.3 than for PHP 7.4 and higher. For example, to run Drupal core's entire test suite on SQLite, DrupalCI takes approximately 20% longer on PHP 7.3 and 5% longer on PHP 7.4+ than before this change.

Impacts: 
Site builders, administrators, editors