1
例如,我們有三個表(會後,PostTag和Tag):自己的統計數據列或統計表?
Post
=======
id
title
body
PostTag
=======
id
post_id
tag_id
Tag
=======
id
name
normalized_name
我們需要統計帖子多少包含一個標籤「運動」。計數查詢很慢(我們有幾百萬行)。
對於我們必須在數據庫中存儲計數的解決方案(添加標籤後,計數用n + 1更新,刪除n-1後)。
這些標籤經常被社區/管理員添加/刪除。
我的想法:
存儲的標籤數量創建自己的彙總表:
PostTagStat
========
tag_id
frequency
該指數在列頻率產生。
但它會更好,如果我們增加新的列到變量表保存INNER JOIN這樣的查詢:
Tag
========
id
name
normalized_name
frequency
你覺得呢?自己的表或新的列?爲什麼?
PostTag表有tag_id字段上的索引嗎? – Devart 2011-04-07 08:46:31
當然! tag_id字段上有一個索引。 – dreamcocoa 2011-04-07 08:51:11
你能發佈您的查詢嗎?我曾想過,對單個tag_id的post標籤進行簡單查詢會很快。 – Jaydee 2011-04-07 11:49:15