[英]Database design for large amounts of data
我想存儲1000個符號的股票交易數據。 實際上,數據是從文本文件轉換而來的,因此不需要插入和更新; 只需要只讀訪問權限。
數據基本上分組如下:每個符號都有許多記錄: {timestamp, price, quantity}
,每條記錄代表一筆交易。
一個符號的近似數據上限為5個記錄/秒,每個工作日為8小時,即每天5x60x60x8 = 144K。 即1K符號每天將產生144M記錄。
對數據的大多數操作都是這樣的:
現在的問題是:在這種情況下,數據庫的最佳設計是什么?
數據庫可以是MS SQL或MySQL。 總時間 - 最長5年。 謝謝!
第三種選擇是最好的1.你需要高讀取性能,寫入幾乎可以忽略不計。
您的要求最適合NoSql數據庫。 單表沒有關系; MySQL會有點矯枉過正。 更多信息 - > NoSql數據庫
這是一大堆數據。 看看NoSQl。
使用SQL,這里有一些基本的想法:
使用盡可能小的數據類型將所有價格數據放在表中。 使用SymbolId(int)引用符號,所需的最小日期時間類型,所需的最小貨幣類型。
做反規范化。 使用每天最小/最大/平均值和SymbolId創建第二個表。
研究水平分區和使用索引。
由於您將從一個日期時間到另一個日期時間運行查詢,因此我根本不會拆分表。 相反,請了解有關分片的更多信息。 下面是我將使用的架構:
symbols
id varchar(6) // MSFT, GOOG, etc.
name varchar(50) // Microsoft, Google, etc.
...
trades
id unsigned bigint(P)
symbol_id varchar(6)(F symbols.id)
qwhen datetime
price double
quantity double
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.