Изучение некоторых вещей о раб... Заметка
Julia Evans на русском

Изучение некоторых вещей о работе с SQLite

Автор делится своим опытом использования SQLite с Django для веб-сайтов. Изначально он считал, что SQLite подходит для продакшена на небольших сайтах, но недооценил его сложность. Важным открытием стала важность команды ANALYZE для производительности запросов, которая значительно сократила время их выполнения. Без ANALYZE запрос занимал пять секунд, с ней — миллисекунды. Команда ANALYZE предоставляет статистику планировщику запросов для принятия более обоснованных решений.Операции по очистке базы данных также представляли трудности. Большие операции DELETE могли занимать более пяти секунд, вызывая тайм-ауты и сбои у других рабочих процессов. Решение автора — выполнять очистку небольшими порциями, отмечая преимущества многозаписных возможностей таких баз данных, как Postgres. Автор пока не уделял внимания оптимизации запросов Django ORM, учитывая небольшой размер базы данных его приложения.Резервное копирование SQLite осуществлялось с помощью restic, а в последнее время — litestream для инкрементных резервных копий. Оба метода включают загрузку в AWS, что автор считает утомительным. Он также отмечает, что SQLite позволяет разделять таблицы по нескольким файлам базы данных, что ранее оказалось полезным. В целом, автор находит забавным, сколько времени у него уходит на изучение основных функций используемых технологий, только недавно обнаружив ANALYZE.