距上一次的《云数据库》曾经过了两个多月没有更新这个系列了,不是不想写,而是没有灵感,找不到想写的货色。
最近凑巧有个老朋友要做一个开发我的项目,问我选什么数据库好。
为了不辜负老朋友的信赖,我决定写一期对于数据库选型的文章。
先说一下这个问题的背景。放在 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 购买费用,数据库在本地配置时的硬件(服务器,机房,网络等)购买费用。
●继续投入(必须投入)
包含数据库软件售后技术支持费用,本公司运维人员费用,数据库在云上配置时的虚拟机 / 服务费用。
●迁徙投入(非必须投入)
数据中心迁徙费用,数据库类型迁徙费用。
◆数据库地位
●是否和应用服务器放在一起
●是否有灾备架构
●是否采纳私有云
◆迁徙难度
●从正在应用中的数据库类型,地位迁徙到其余数据库类型,地位的难度。
◆业务类型
●业务解决(OLTP)●数据仓库(OLAP)●HTAP 混合型数据库
◆数据规模
●初期规模
数据库初始导入时的数据量。
●增长速度
数据的积蓄形式,增长速度以及数据增长到多大程度后思考分库 / 分表 / 分区。
◆数据类型
◆平安需要
●网络级别安全控制(Route,OS 层 ACL 等)●数据库级别拜访权限管制(DB User 权限 等)●高级权限管制(Audit,加密 等)
◆运维难度
●定例运维(Backup/Recovery 等)●故障解决(技术文档是否全面公开,社区论坛是否欠缺,既存客户数量,既存技术者数量等)●扩大能力(Share Everything、Share Storage、Share Nothing 等)
以上只是简略的列出了在数据库选型时须要思考的几个点,其实在实际操作时还须要把点扩大成面,这就须要破费很大的功夫了。
2021/05/14 @ Dalian