Extra Form
PHP PHP 7.2
CMS Rhymix 2.0

지금은 실시간으로 조회수가 1씩 올라간는데,

 

예를들어 조회수를 1분단위로 계산해서 유저들에게 보여주는 방식이 가능한가요?

 

  • ?

    슈퍼캐시 모듈 설정에 보면 유사한 설정이 있습니다.
    캐쉬된 문서를 볼때 조회수를 일일이 올리면 캐쉬한 의미가 떨어지니까 확률적으로 조회수를 올립니다. 예를 들어 20% 확률로 조회수를 한번에 5씩 올린다고 가정할 경우 조회수 상승 확률은 랜덤하긴 하지만 시행횟수가 늘어남에 따라서 결국 평균적으로 5번당 1번씩 불리게 되니까 조회수가 거의 일치하게 되는 그런 원리죠. 사이트의 평균 조회수가 적다면 OFF하는게 좋고 조회수가 최소 100은 넘어줘야 의미가 있는 옵션이라고 생각합니다.

  • ? profile
    감사합니다.

    실시간 조회수는 30분에 100정도는 나오는 편이나 조회수 좀 많은건 1만이 넘어가서 혹시나 싶어 여쭤봤습니다.

    나중에 혹시라도 부하가 걸리지 않을까 라는 생각도 조금 들었구요,
  • profile
    1분마다 조회수를 갱신하는 느낌보다는 그냥 어차피 갱신되어야 할 부분이라면 그대로 사용하시는 것이 좀 더 낫습니다.

    어차피 쿼리를 사용할 예정이고, 윗분말씀대로 슈퍼캐시를 따로 활용할 것이 아니라면 그다지 실용성은 없거든요.

    어차피 유저가 읽을때마다 카운팅은 항상 할 것이고 굳이 그 조회수때문에 성능이 더 나빠지거나 그런것도 없어서.. 굳이 기능자체의 실용성은 별로 없을것 같습니다.
  • profile ?

    조회수 1 올리는 간단한 쿼리가 가장 큰 병목이되기도하죠.
    myisam 시절에는 평소 방문자가 많지 않아도 저 조회수 때문에 네이버 메인에 걸리면 긴장해야했었을 정도...

     

    메이저 언론사들이 운영하는 블로그, 웹진, 소모임 같은 그냥 구색맞추려고 대충 만든 서비스도 네이버 메인에 걸리면 터져나가고 그랬었죠. 원인중 큰부분을 차지하는게 조회수 카운팅..... 

  • ? profile

    물론 그럴 수 있겠지만.. 질문자의 오래된 게시글의 날짜, 및 PHP버전으로 미루어보아 myisam을 선택할 이유는 없어보였거든요.

    엔진을 안바꾸셧더라면 문제가 되엇겠지만.. 이 질문의 요지는 이미 성능의 질문보다는 단위계산하여 보여주는 항목에 신경쓰고 있엇고.. 어차피 해당 카운팅을 업데이트를 하지 않는다면 의미가 없기 때문에 성능에 아무런 문제 없을거라고 답변드린겁니다.

    어차피 캐시해도 updateCount는 뒤에서 돌아가고 있어요.

    그전에는 슈퍼캐시와 같은 캐싱 기능도 없었으니 매이저 언론사 혹은 네이버메인에 끼어들면 그만큼 긴장햇엇겠지요 ㅎㅎ

    근데 요즘은 그만큼 서버 성능 및 캐싱화하는 기술이 늘엇기 때문에 그거까지 신경을 굳이 쓸필요 없고.. 필요하다면 슈퍼캐시를 이용하여 세팅해두는편이 좋다고 현시점에 맞춰서 답변드린 것입니다.

  • profile profile
    슈퍼캐시로도 이용이 가능하다는 말씀이시죠?

    조회수를 캐시방식으로 1분정도 있다 카운터 시켜주면 홈페이지 속도도 좀 더 개선되지 않을까 라는 생각에 질문 드려봤습니다!
  • profile profile

    실제로 조회수를 올리는 데 시간이 얼마나 걸리는지 디버그 찍어 보셨나요?

    기껏해야 0.001초 걸리는 코어 기능에 집착하기보다는, 서버 처리 속도를 0.05초 지연시키는 위젯이나 브라우저 렌더링 속도를 0.5초 지연시키는 외부 스크립트 등을 살펴보는 편이 훨씬 더 효율적일 것 같습니다.

     

    데이터에 기반하지 않은 추측성 튜닝은 아무 의미가 없습니다.

  • profile profile
    어차피 디비에서 조회수를 빼놓고 쿼리를 하는게 아닌데.. 조회수를 캐싱할 이유가있나요.

    말씀드린대로 어차피 백엔드에서 조회수는 항상 증가되어야하고 그거에 대한 디비업데이트나 그런것들은 항상 업데이트 같이 되어야 정상적인 조회를 할 수 있지요.

    몇초 안걸리는 거라면 굳이 이거에 연연하지 않는게 더 나을듯 합니다 ㅎㅎ
  • ?

    myisam은 조회수 올리는것때문에 디비부하가 컸지만 innodb라면 대부분 큰 문제는 없을수있고
    디비 서버 성능이 낮거나 매우 많은 접속이 있는 사이트라면 innodb에서도 느려질수는있죠.

    위 댓글에 있는 캐시플러그인처럼 지연 업데이트로 성능문제를 해결할수있겠죠. 성능 문제가 아니라 단순히 실시간이 아니면 되는것이라도 위 캐시플러그인으로 원하시는 효과를 얻을수있을것같은데 안써봐서 모르겠네요.