Skip to content

SQLite 3.54.0 gets 4% faster and drops Windows XP

SQLite 3.54.0 runs about 4% faster, adds a diskused() function that replaces sqlite3_analyzer, changes CLI defaults and drops Windows XP support.

By Tech AI Wire Team

3 min read

XLinkedIn
Screenshot of the SQLite release log page SQLite Release 3.54.0 On 2026-10-09, listing CLI enhancements.

By the numbers

faster than the previous release, in CPU cycles
~4%
faster than SQLite 3.51.0 a year ago
~7.5%
now the oldest supported Windows version
Vista

SQLite 3.54.0 was released on October 9, 2026, and it runs about 4% faster than the release before it. SQLite is the small database engine built into phones, browsers and countless apps, which is why even a modest speed gain reaches a huge number of devices. This release also changes several defaults in the command-line tool and drops support for Windows XP. The API, SQL syntax and file format stay backward compatible, Linux Compatible notes.

How much faster

The release notes give two figures:

  • About 4% faster than the previous release
  • About 7.5% faster than version 3.51.0, released a year earlier

SQLite measures speed by counting CPU cycles while running its speedtest1 benchmark under valgrind on Linux x64. The release notes warn that results vary with workload, build options, CPU, compiler and operating system.

Much of the gain comes from the query planner, the part that decides how to run each query:

  • An UPDATE on a table with expression indexes now skips the index when the indexed value has not changed.
  • Expressions such as x OR TRUE and x OR FALSE are handled better.
  • DISTINCT is ignored in a SELECT on the right side of IN, where it makes no difference.
  • A UNION with LIMIT 1 is faster and uses less memory.

New functions and limits

SQLite 3.54.0 adds several new tools for developers:

AdditionWhat it does
diskused()An optional extension that reports disk use; it replaces the deprecated sqlite3_analyzer
%J and %jNew printf() and format() conversions for JSON string literals
sqlite3_result_str()A new C interface
sqlite3_incomplete()A new C interface
weekday -N and end ofNew date and time modifiers
SQLITE_LIMIT_SCHEMAA new sqlite3_limit() category
SQLITE_LIMIT_TRIGGER_STEPSA new sqlite3_limit() category

SQLite now uses O_TMPFILE for temporary files where the system supports it. ALTER TABLE also refuses to add, drop or rename a column named ROWID, ROWID or OID.

There is one security-related change. The authorizer, a callback that approves or blocks SQL actions, now runs for SQL functions in a CREATE TABLE DEFAULT clause. It runs when the table is created and when the default is used, but not when the schema is read on open.

Command-line changes

The sqlite3 shell gets several changes, and some of them alter default behavior:

  • The prompt can be set with the SQLITE_PS1 and SQLITE_PS2 environment variables, and the default prompt respects NO_COLOR.
  • Column headers now appear in columnar modes even when a query returns no rows.
  • .mode gains --rowcount on, --ifmt and --fpfmt, and --titles always is now the default.
  • A line containing only go or / no longer ends a statement, unless SQLite is built with -DSQLITE_SHELL_LEGACY_COMMAND_TERMINATOR.
  • The new .diskused command uses the diskused() function.

Windows XP support ends

SQLite no longer supports Windows XP or earlier, including Windows CE. Windows Vista, from around 2007, is now the minimum. On Windows, some internal locks now use Slim Reader/Writer Locks, a newer Windows feature. UWP and WebUI apps should build with -DSQLITE_UWP=1. Linux, macOS, BSD and other Unix-like systems are not affected.

SQLite is not alone in trimming old Windows support. Rust 1.100 stopped shipping its compiler for 32-bit Windows earlier this month.

What this means for developers

  • Upgrade for the speed. A 4% gain in CPU cycles comes free for most apps. Run your own benchmarks, since results depend on workload.
  • Check scripts that use the CLI. Headers now print on empty results, and go or / no longer ends a statement. Scripts that parse sqlite3 output may need a fix.
  • Replace sqlite3_analyzer. It is deprecated. Move disk-use reports to .diskused or the diskused() function.
  • Audit ALTER TABLE migrations. Any migration that touches a column named ROWID, ROWID or OID will now fail.
  • Check Windows targets. If you still ship to Windows XP or Windows CE, stay on an older SQLite or drop those systems.
  • Review authorizer callbacks. If your app uses one, test tables whose DEFAULT clauses call SQL functions.

Most apps can upgrade safely. Test CLI scripts and old migrations first.

Sources

  1. SQLite Release 3.54.0 On 2026-10-09 - SQLite
  2. SQLite 3.54.0 Release: Faster Engine, New CLI Features, and Dropped Windows XP Support - Linux Compatible

Related articles

The weekly digest

One email every Friday with the week's top stories from all six desks: AI, dev tools, coding, the tech industry, startups and what's next. Free, no spam.

Unsubscribe anytime with one click.