Mysql
無限期地以一種簡單且可檢索的方式管理金融交易的計劃
我有一個大型(多列)MySQL 數據庫表(InnoDB),它有相當多的 INSERT(~500/天)。將這些行視為金融交易。客戶需要能夠通過線上系統查看這些行和/或檢索包含交易詳細資訊的報告(盡可能返回)。
我的問題是:允許這些行累積並在準備列表時簡單地從表中選擇它們是否可行,甚至考慮到數量的顯著增長?流量會比較低。
我們已經考慮實施一個巧妙的方案,將表格分成年份;然而,這將大大增加項目的複雜性。假設該表經過仔細優化和充分索引,該表在每年 1,000,000 多行的情況下仍然足夠快嗎?
我希望這不是太含糊或太具體而無法保證答案,並感謝那些花時間考慮回應的人。
如果沒有增長,您將在 10 年內看到 180 萬行。以每年 100% 的速度增長,10 年內有 9300 萬行。我估計 10 年後你的實際上限為 6600 萬行。
如果對錶進行分區,那麼在事務表中保留這麼多行是很實用的。(您暫時不必這樣做。)
我們已經考慮實施一個巧妙的方案,將表格分成年份
數百萬人已經想到了這一點。不要這樣做。
在出現性能問題之前,請使用單個未分區的表。然後對錶進行分區。(從現在到現在,您有很多時間來測試和練習。)最後,在針對新工作負載調整伺服器之後,考慮升級硬體。(銀行不在每月花費 2.95 美元的共享網路伺服器上執行。)
也考慮現在切換到 PostgreSQL。它具有比 MySQL 更好的查詢優化器;它有更多的索引選項,包括基於函式的索引和部分索引;並且根據我的經驗,它似乎比 MySQL 更好地處理 1 億行表。