距上一次的《雲數據庫》已通過了兩個多月沒有更新這個系列了,不是不想寫,而是沒有靈感,找不到想寫的東西。
最近恰巧有個老朋友要作一個開發項目,問我選什麼數據庫好。sql
爲了避免辜負老朋友的信任,我決定寫一期關於數據庫選型的文章。數據庫
先說一下這個問題的背景。放在20年前,選一個數據庫彷佛不是啥難題,由於可選項太少了。基本原則就是有錢任性的用ORACLE/DB2,口袋拮据的用Mysql,剩下的選SqlServer/Sybase。
但是在20年後的今天,選一個合適的數據庫就變得不那麼容易了,由於啥呢?可選項太多了。不算外國的數據庫產品,光是國產數據庫就有上百種之多,怎能不叫人亂花漸欲迷人眼呢。安全
下面是2021年5月最新的數據庫排名,先不用關注分數和排名,只看參與排名的數據庫數量是否是就有點眼花繚亂了。服務器
2021年5月國產數據庫排行榜
https://www.modb.pro/dbRank
網絡
2021年5月國際數據庫排行榜
https://db-engines.com/en/ran...
架構
那在這麼多的數據庫之中如何作出正確的選擇呢?我以爲能夠從如下幾個方面進行評價。運維
◆預算投入加密
●一次投入(必須投入)
包括數據庫軟件/License購買費用,數據庫在本地配置時的硬件(服務器,機房,網絡等)購買費用。spa
●持續投入(必須投入)
包括數據庫軟件售後技術支持費用,本公司運維人員費用,數據庫在雲上配置時的虛擬機/服務費用。code
●遷移投入(非必須投入)
數據中心遷移費用,數據庫類型遷移費用。
◆數據庫位置
●是否和應用服務器放在一塊兒 ●是否有災備架構 ●是否採用公有云
◆遷移難度
●從正在使用中的數據庫類型,位置遷移到其餘數據庫類型,位置的難度。
◆業務類型
●業務處理(OLTP) ●數據倉庫(OLAP) ●HTAP混合型數據庫
◆數據規模
●初期規模
數據庫初始導入時的數據量。
●增加速度
數據的積蓄方式,增加速度以及數據增加到多大程度後考慮分庫/分表/分區。
◆數據類型
◆安全需求
●網絡級別安全控制(Route,OS 層ACL 等) ●數據庫級別訪問權限控制(DB User 權限 等) ●高級權限控制(Audit,加密 等)
◆運維難度
●定例運維(Backup/Recovery 等) ●故障處理(技術文檔是否全面公開,社區論壇是否完善,既存客戶數量,既存技術者數量等) ●擴展能力( Share Everything、Share Storage、Share Nothing 等)
以上只是簡單的列出了在數據庫選型時須要考慮的幾個點,其實在實際操做時還須要把點擴展成面,這就須要花費很大的功夫了。
2021/05/14 @ Dalian