묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
php 질문입니다.
2023.09.11 21:01
MS SQL 을 사용하고 있습니다.
랭킹이 필요해서 php 파일 하나 만들어서 쿼리 돌리고 랭킹을 받고 있습니다.
근데 생각해 보니
회원들이 랭킹을 볼 때마다 매번 php 파일이 실행하게 되는데
그때마다 쿼리를 돌리는 게 리소스 측면에서 비효율적이라고 생각이 되네요.
시피유/램 사용율도 올라가는 게 보이고요.
그래서 랭킹은 1시간에 한 번만 쿼리를 실행해서 만들어진 랭킹만 회원들에게 보이게 하고 싶습니다.
실시간 랭킹은 아닌 게 되는 거죠.
일종의 캐시 같은 건데 회원들은 매번 php 쿼리(랭킹)를 보는 게 아닌 이미 만들어진 랭킹 html 을 보게 되는 거죠.
이걸 구현하기 위해 참고가 될만한 자료가 있으면 링크 부탁드립니다.
감사합니다.
XE 기반이신지 다른 기반인지를 모르겠네요
XE 기반이면 캐시 를 써서
그 값을 저장해서 공유하는 방식이 있을테고
( 실제 회원정보나 게시글정보 등도 다 부하를 줄이기 위해 캐시 를 쓰고 있으니 Core 에서 해당 부분 확인하시면 될거예요 )
아니면 해당 랭킹 기능을 위젯 기반으로 만든뒤
위젯 배치할때 위젯캐시 를 설정하는 방법도 있습니다. ( 그 캐시 기간동안은 위젯 내용을 캐시해둔걸로 대체해 보여주죠 )