스레드 제목, 게시물 개수 및 기타 정보가있는 포럼이 있습니다. 필자는 다른 쿼리를 최적화하거나 완전히 제거했지만 각 스레드의 게시 횟수를 계산하는 것은 메인 보드 페이지가로드되는 속도를 늦추고 있습니다. 포럼의 게시물 스레드 개수 계산
즉getPostCount($thread)
내부
echo $boards->getPostCount($thread)
은 : 그것은 각 스레드에 대해이 작업을 수행하는 페이지 당 20 개 스레드가 있기 때문에 $query = $this->db->query("SELECT COUNT(id) FROM forum_posts WHERE threadid = '$thread'
이 문제입니다.
이 정보를 사전에 얻을 수 있거나이 정보를 얻기 위해 필요한 쿼리를 최소화 할 수있는 다른 방법이 있습니까? 주어진 시간에 150 명의 사용자가 있으므로 페이지로드 당 3K 쿼리는 내가 원하는 것이 아닙니다.
감사합니다.
편집 :의 I 사용하도록 주어진 쿼리의 EXPLAIN : mysql explain http://screensnapr.com/e/01hulx.png
나는 이것을 시도한 적이 있으며 기본적으로 MySQL을 죽이고 결과를 얻으려면 영원히 걸린다. 그래서, mysql에 문제가 있거나 게시물의 양이 너무 많다면 (300k posts, 34k threads) – Steve
스레드와 포스트 테이블 사이에 적절한 관계를 추가하고 모두 원활하게 진행했다. – Steve
@Tar :'forum_threads (boardid, sticky, lastbump)'에 색인을 만들고'forum_posts (threadid)'에 또 다른 색인을 만듭니다. – Quassnoi