SQLite 3.53 добавила SET NOT NULL без пересборки таблицы
В SQLite 3.53.0 (апрель 2026) появились команды ALTER TABLE ... ALTER COLUMN ... SET NOT NULL и DROP NOT NULL. На таблице в 2 млн строк смена ограничения заняла около 0,01 с против 1,5–1,8 с при полной пересборке — примерно в 150–180 раз быстрее.
- SET NOT NULL выполняется за 6 записей на диск против 69 843 при пересборке
- На таблице 2 млн строк: ~0,01 с против 1,5–1,8 с у старого способа
- С индексом на колонке проверка читает 13 страниц, без индекса — 25 372 на 8 млн строк
- Незаявленная поддержка ADD CONSTRAINT и DROP CONSTRAINT работает, но не описана в документации
Читать дальше
Софт