Files
gh-williballenthin-aiwilli-…/skills/working-with-sqlite/SKILL.md
2025-11-30 09:06:18 +08:00

34 lines
771 B
Markdown

---
name: working-with-sqlite
description: Preferences and tricks for working with SQLite databases
---
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:
```python
conn = sqlite3.connect('file:database.db?mode=ro', uri=True)
```