不要使用系統庫存放業務數據
更新時間 2023-11-29 21:18:57
最近更新時間: 2023-11-29 21:18:57
分享文章
本頁介紹了為什么不建議使用系統庫存儲數據。
用戶在連接到文檔數據庫服務副本集實例后,可以看到 local, config, admin 3 個系統庫。在連接到文檔數據庫服務集群版實例后,能看到 config, admin 2 個系統庫。
不建議用戶直接在系統庫下建表,下面說明原因。
- local 庫不參與主從復制。副本集中每個節點的 local 庫是相互獨立的,對主節點 local 庫的修改不會通過 oplog 復制到從節點。因此,如果用戶在 local 庫下建表寫數據,會存在數據安全風險,也不能利用文檔數據庫服務讀寫分離的特性。
- admin 庫的寫性能受限。由于一些特殊原因,admin 庫下的所有表在執行寫入操作時,需要先獲取 DB 的寫鎖(非意向寫鎖)。這樣導致 admin 庫下的寫入操作都是串行執行的,而且和讀操作互斥,因此性能低下,不適合存儲業務數據。
- 不利于用戶權限分配。如果使用系統庫存儲數據,可能會在給普通用戶分配權限時將系統表暴露出去,帶來額外的系統風險。
- 刪表刪庫等操作存在嚴重風險。在使用 dropCollection 或者 dropDatabase 刪除庫表時,會增加誤操作的風險。