我有一個論壇,其中有主題標題,帖子數量和其他信息。我已經設法優化其他查詢/完全刪除它們,但是計算每個線程的帖子數量的查詢會減慢主板頁面的加載速度。在論壇上計算帖子數量
即echo $boards->getPostCount($thread)
內getPostCount($thread)
就是: $query = $this->db->query("SELECT COUNT(id) FROM forum_posts WHERE threadid = '$thread'
這是一個問題,因爲它爲每個線程做到這一點,則每頁有20個線程。
有沒有其他辦法,我可以事先得到這個信息,或以某種方式最大限度地減少了獲取這些信息所需要的查詢?在任何給定時間有150個用戶,因此每頁加載的3K查詢不是我想要的。
謝謝。
編輯:我是給使用該查詢的EXPLAIN: mysql explain http://screensnapr.com/e/01hulx.png
我以前試過這個,做這樣的查詢基本上殺死MySQL和它永遠回來了結果。所以,我不知道是否有問題或者帖子數量太大(300k帖子,34k線程) – Steve 2012-04-27 20:59:04
我在線程和帖子表之間增加了適當的關係,並且一切順利。 – Steve 2012-04-28 00:52:03
@Tar:在'forum_threads(boardid,sticky,lastbump)'和'forum_posts(threadid)'上創建一個索引'。 – Quassnoi 2012-04-28 03:35:15