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