我正試圖將大量的每日天氣數據存儲到postgreSQL數據庫中。這可能看起來並不是很多數據,但大約有95,000個站點,日常數據可能會回溯多達100年。這可能意味着數百萬條記錄(95,000 * 365 * 100)= 3,467,500,000。雖然這是一個高估,但我仍然不可能將所有的日常數據存儲在一個帶有站點ID的表格中作爲外鍵映射到帶有站點信息的另一個表格。組織這些數據以便按站查詢數據系列的最佳方法是什麼?我應該爲每個站點創建一個表格(將導致95,000個表格),還是應該爲每個區域嘗試更寬泛的表格?有什麼優點和缺點?任何幫助是極大的讚賞。SQL優化數據庫結構:NOAA數據
我的數據是這樣的:
Stations
*ID
-longitude
-latitude
-elevation
-country
-state
-name
...
Weather
*Station ID
*Date
-Precipitation
-High Temp
-Low Temp
爲什麼不使用表分區?該數據庫負責爲您創建和維護95000個獨立表格:http://www.postgresql.org/docs/9.1/static/ddl-partitioning。html –
唉,在PostgreSQL中沒有內置的分區,你必須基本上推出你自己的或者使用外部工具,比如pg_partman。它也不能很好地擴展到數百或數千個表格。我強烈懷疑最好的選擇是用幾張大桌子讓事情變得簡單。 –
按日期分區似乎是最合乎邏輯的。在34M行/年;它可能是每年或每5或10年。 – wildplasser