iT邦幫忙

0

常有大量新增及刪除的資料表,適合 MySQL 還是 PostgreSQL

您好:
如果每天隨時都有新增的資料 (一個月大約新增一億筆左右),適合用 MySQL 的 innodb 引擎資料庫 , 還是 PostgreSQL ?

我看了一下 MySQL 的相關資料,如果經常會有新增、修改、刪除的話,必須定時去做 Check Table 和 optimize table ,而且執行這兩個指令的時候,資料表無法 新增、修改、刪除資料。 如果資料筆數多的時候等於要停機很久一段時間。

之前用過 MS-SQL 好像沒有一定需要做這種類似重整或優化的作業。
PostgreSQL 遇到像這種 隨時都有新增、查詢的資料表有沒有甚麼情況是需要做這種可能會停機很久的維護?

感謝您的回覆,謝謝。

石頭 iT邦高手 1 級 ‧ 2021-07-13 23:47:27 檢舉
能否提供更多資訊? 一個月大約新增一億筆左右 是怎麼樣的資料 新增多查詢少?
如果單純以資料面 你會需要archive把資料定期搬到另一個地方
老實說我沒很懂你想要問的問題
打雜工 iT邦研究生 1 級 ‧ 2021-07-17 11:52:02 檢舉
一個月就一億筆,很有挑戰性喔~
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
2
一級屠豬士
iT邦大師 1 級 ‧ 2021-07-13 23:22:15

這裡真是人才濟濟
不僅有每秒幾十萬上下的系統
還有一個月一億筆的資料量

我這輩子寫程式處理的資料量
全部加起來也沒有一億筆
/images/emoticon/emoticon25.gif

現在 IoT 這類的,或者是蠻多系統會把一些 log 放到DB.
有時候也不一定要 delete old records, 建立新的table,
舊table 改名;或是想保留的較少部分 insert到新table.
減少一些log 開銷,舊資料過段時間,備份後,改名的table drop掉.

0
IT 癡
iT邦高手 1 級 ‧ 2021-07-14 08:55:04

一億筆資料?
是一個字母或數字就是一筆!還是如 ERP 中整份訂單資料為一筆!
就安全性、管理性、維護性,你的狀況建議改用 Oracle 還是妥當些

0
DennisLu
iT邦研究生 1 級 ‧ 2021-07-14 09:58:13

大量刪除,會讓你的dead_tup變多,
PostgreSQL 有 autovacuum功能, 觸發條件可以自己調整筆數或比例,
也可以為特定table設置不用全域。
普通 vacuum透過手動或autovacuum去做 ,如果是手動執行full vacuum 就需要停用,
不過這種等級的資料與異動量,
預設值是不太好的,硬體資源也要充沛,worker的數量跟資源調整...等細項參數就顯得重要
經驗不夠就要常常觀察怎麼調整到最後才對自己有利。
查詢可能另外建立Hot Standby Replication,查詢往查Standby Server,或是多掛幾台另外搭建connection pool服務,做性能耗用的分流(讓主資料庫認真做異動類事務)跟連線數紓解。
如果非很精準的及時需求,走async mode(常異動資料且要求極短時間要求資料一致性不適合)。

不然就花錢買oracle企業版+顧問,硬體規也拉高。
(要快就是花錢)

不然嘗試用用noSQL類的資料庫,MongoDB,看看能不能符合使用上的需求,
當然沒用過noSQL,可能初期會很不習慣吃力。
巨量資料用mongodb處理,處理的結果存回SQL DB
這種異質資料庫各取所長的配合方式。

我要發表回答

立即登入回答