Я создаю веб-приложение, похожее на панель инструментов, в Django, и мое представление загружается вечно из-за относительно большой базы данных (одна таблица с 60 000 строк ... и растет), сложности запросов и большого количества хруста чисел и обработка данных в python, согласно панели инструментов отладки django, для загрузки страницы требуется 12 секунд.
Чтобы ускорить время загрузки страницы, я подумал о следующем решении:
- Создайте представление, которое автоматически вызывается каждую ночь, выполняет все сложные запросы, обработку чисел и манипулирование данными и сохраняет результаты в небольшой таблице поиска в базе данных.
- Создайте второе представление, которое возвращает панель мониторинга, но извлекает данные из небольшой таблицы поиска с помощью очень простого запроса и, следовательно, загружается намного быстрее.
Поскольку запросы из первого представления выполняются каждую ночь, данные в таблице поиска всегда актуальны.
Мои вопросы: имеет ли смысл моя идея, и если да, есть ли у кого-нибудь опыт с таким подходом? Как я могу написать представление, которое автоматически вызывается каждую ночь?
Я тоже читал про кеширование, но с кешированием первая загрузка страницы после обновления базы все равно занимает очень много времени, а данные в базе регулярно обновляются