設計氣象站的數據庫。我不確定哪個是正確佈局數據庫的方法。我已經完成了這兩個解決方案,這裏有一些限制。MySQL多表或大型表?
- 每個工作站每10秒鐘上傳一次數據(Temp,Humid & Time)。
- 必須支持數百個,可能有數千個獨立站。
那麼最好是爲每個工作站創建一個新表格,以便能夠不斷寫入多少行,或者創建一個添加到工作站ID中的怪物表以瞭解它起源的位置?
設計氣象站的數據庫。我不確定哪個是正確佈局數據庫的方法。我已經完成了這兩個解決方案,這裏有一些限制。MySQL多表或大型表?
那麼最好是爲每個工作站創建一個新表格,以便能夠不斷寫入多少行,或者創建一個添加到工作站ID中的怪物表以瞭解它起源的位置?
一般情況下,與第二個模型一起使用,但如果您始終需要在單個工作站上拉下所有對象,請使用第一個模型。
其基本原理是,如果您需要始終獲取單個工作站的所有天氣數據,則必須讓數據庫服務器滾動瀏覽所有工作站的整個聚合表。隨着站數增加,運行時間會增加。
第二種選擇是正確的方法。
第一個圖將是數據庫的巨大過載數據。
同樣在工作站表中,您應該將StationID作爲外鍵包含在內。
然後,通過將Station表的外鍵鏈接到StationData表的主鍵,您可以使用innerjoin訪問所有數據。
希望這可以幫助你!
是的,這裏是我的問題所在,我將以多種方式訪問數據。我想,將數據分佈在多個表格上會比一張巨大的記錄表格更好。我知道無論哪種設計,性能都會變慢,這只是一個更好,更穩定等問題。 – Sam
這是關係數據庫還是結構化nosql? – Mykel
假設它是一個關係數據庫,並且數據收集將在每個站點運行很長時間(年),我實際上會使用第一個模型。通過將每個站點的數據分成多個表格來管理數據會容易得多。此外,您還可以獲得無需設置搜索條件(例如WHERE STATION_ID = X)的額外好處,這將稍微有助於減少兩個模型之間的延遲。 – Mykel