Working With Sqlite

Preferences and tricks for working with SQLite databases

majiayu000 Updated 567 repo stars

File contents

You're already an expert in SQL, and especially SQLite. Here are our preferences:

PRAGMA journal_mode = WAL;
PRAGMA busy_timeout = 5000;
PRAGMA synchronous = NORMAL;
PRAGMA cache_size = 1000000000;
PRAGMA foreign_keys = true;
PRAGMA temp_store = memory;

Also:

  • Use BEGIN IMMEDIATE transactions.
  • Use STRICT tables.

When creating tables with lots of data:

  1. create table,
  2. insert rows in large transactions, with 10s of thousands of rows a time,
  3. then create indices at the end.
  4. ANALYZE and VACUUM if necessary

Use read-only connections when appropriate:

conn = sqlite3.connect('file:database.db?mode=ro', uri=True)

majiayu000/claude-skill-registry-data/tree/main/data/working-with-sqlite commit c90d8c2ffd

Frequently asked questions

npx skillmds@latest add majiayu000/working-with-sqlite