2014-07-23 57 views
0

設計氣象站的數據庫。我不確定哪個是正確佈局數據庫的方法。我已經完成了這兩個解決方案,這裏有一些限制。MySQL多表或大型表?

  1. 每個工作站每10秒鐘上傳一次數據(Temp,Humid & Time)。
  2. 必須支持數百個,可能有數千個獨立站。

那麼最好是爲每個工作站創建一個新表格,以便能夠不斷寫入多少行,或者創建一個添加到工作站ID中的怪物表以瞭解它起源的位置?

Database Ideas

回答

0

一般情況下,與第二個模型一起使用,但如果您始終需要在單個工作站上拉下所有對象,請使用第一個模型。

其基本原理是,如果您需要始終獲取單個工作站的所有天氣數據,則必須讓數據庫服務器滾動瀏覽所有工作站的整個聚合表。隨着站數增加,運行時間會增加。

+0

是的,這裏是我的問題所在,我將以多種方式訪問​​數據。我想,將數據分佈在多個表格上會比一張巨大的記錄表格更好。我知道無論哪種設計,性能都會變慢,這只是一個更好,更穩定等問題。 – Sam

+0

這是關係數據庫還是結構化nosql? – Mykel

+0

假設它是一個關係數據庫,並且數據收集將在每個站點運行很長時間(年),我實際上會使用第一個模型。通過將每個站點的數據分成多個表格來管理數據會容易得多。此外,您還可以獲得無需設置搜索條件(例如WHERE STATION_ID = X)的額外好處,這將稍微有助於減少兩個模型之間的延遲。 – Mykel

0

第二個更有意義,更常見。爲每個單獨的工作臺製作一個表是愚蠢的,並且帶走了使用SQL的全部要點。 SQL是爲「大量表」設計的,就像你想要的那樣,因此你無需擔心。

+0

在大量討論時,MySQL能夠輕鬆處理每小時360,000個新行嗎? – Sam

+0

@Sam它需要用方法#1處理那麼多行...... – Shahar

0

第二種選擇是正確的方法。

第一個圖將是數據庫的巨大過載數據。

同樣在工作站表中,您應該將StationID作爲外鍵包含在內。

然後,通過將Station表的外鍵鏈接到StationData表的主鍵,您可以使用innerjoin訪問所有數據。

希望這可以幫助你!