В моем проекте есть база данных mysql и серверная часть, написанная Clojure.
Некоторая таблица базы данных обновляется только один раз в день, чтобы запрашивать самую свежую информацию, которую мы будем использовать.
Но:
база данных очень большая, а сеть медленная, поэтому каждый запрос займет секунды.
нам нужно выполнять сложные вычисления после каждого запроса.
нам нужно выполнять множество видов sql-запросов, поэтому сохранять результаты каждого sql-запроса нереально.
нам нужно очень часто изменять вычислительные функции с целью отладки.
В случае медленных запросов sql все идет слишком медленно.
К счастью, наши данные будут обновляться только один раз в день, и что некоторые из наших запросов из базы данных используются очень часто.
Поэтому мы хотим кэшировать часто используемые запросы sql и промежуточные результаты.
Полезна ли функция Clojure memoize
для такого рода работ? Я боюсь, что запросы sql не чисты, поэтому memoize
не должны кэшировать их результаты. Но в течение одного дня результаты наших sql-запросов должны быть идентичны.
Итак, могу ли я memoize
получить результаты в течение одного дня и автоматически обновлять результаты на следующий день?
Спасибо за помощь!