내 프로젝트에는 Clojure가 작성한 백엔드와 MySQL 데이터베이스가있다.Clojure의`memoize` 함수는 느린 SQL 쿼리와 복잡한 계산을 캐싱하는데 유용합니까?
우리가 사용할 최신 정보를 쿼리하기 위해 데이터베이스의 일부 테이블이 매일 한 번만 업데이트됩니다.
그러나 :
데이터베이스가 매우 큰 네트워크 그래서 모든 쿼리는 초 정도 걸립니다, 느립니다.
우리는 각 쿼리 후에 복잡한 계산을 수행해야합니다.
많은 종류의 SQL 쿼리를 수행해야하므로 모든 SQL 쿼리의 결과를 저장하는 것이 현실적이지 않습니다.
디버깅 목적을 위해 매우 자주 계산 함수를 변경해야합니다.
느린 SQL 쿼리의 경우 모든 것이 너무 느립니다.
우리의 데이터는 매일 한 번만 업데이트되며 데이터베이스의 일부 쿼리는 매우 자주 사용됩니다.
그래서 자주 사용되는 SQL 쿼리와 중간 결과를 캐시하고 싶습니다.
Clojure의 memoize
은 이러한 종류의 작업에 유용합니까? 두려운 것은 SQL 쿼리가 순수하지 않으므로 memoize
은 결과를 캐시하지 않아야한다는 것입니다. 그러나 하루 동안 우리의 SQL 쿼리 결과는 동일해야합니다.
하루에 결과가 memoize
일 수 있으며 다음 날 자동으로 결과를 업데이트 할 수 있습니까?
도움 주셔서 감사합니다.
clojure.core.memoize없는 이유는 무엇입니까? –
코드 주셔서 감사합니다. 제가 실제로해야 할 일은 단지 우아한 방법 일뿐입니다. – cmal