2012-04-01 98 views
2

我正在一個PHP/MySQL的統計日誌程序,並試圖找到最好的MySQL數據庫結構。MySQL表設置爲今天,昨天,月度日誌

有一部分遊客能夠看到日期統計數據(即最新的20個條目),但也能夠看到今天的總體情況,昨天總體情況,過去7天總體情況和最近30天總體情況數據。

從數據中我拉動的實時統計信息將每60秒更新一次,每次更新至少有10個新條目。

是我的邏輯正確設置兩個表...一個充當「今天的」統計數據和另一個作爲整體存檔...像:

todays_stats
ID
from_url
ENTRY_DATE

overall_stats
ID
from_url
ENTRY_DATE

然後雙擊插入每個新條目,而是通過一個cron作業在每晚午夜截斷todays_stats?

或者是否有更有效的方法呢?

+1

要快得多,然後用查詢來獲得你想要的數據。您可以使用GROUP BY獲取每日或每週或任何其他統計信息。 – 2012-04-01 22:53:57

回答

1

這取決於您的每日統計行數,是否刪除歷史數據以及您擁有多少索引。我們需要刪除歷史數據,並且有7〜8個具有大量統計數據的索引,因此我們將數據分成日表和寫存儲過程來獲取數據(最後7天,最後30天等)。滴桌比DELETE FROM table WHERE index=6-month-old-data

0

我認爲最好的辦法是要保持一個表,將保持當前的數據集,那麼你將有整體的統計信息和在午夜,你會從目前的整體表中插入的所有數據與單獨的表

INSERT INTO `overall` SELECT * FROM `current` 

查詢。然後,您將在成功複製數據後截斷當前表。

+0

謝謝亞歷克斯!今晚將試用這個樣本數據,看看它是如何執行的。 – 2012-04-04 15:27:57

相關問題