数据库漫谈(十)----数据库选型

2022-08-19 20:20:02 浏览数 (1)

编者按:

本文作者系Scott(中文名陈晓辉),现任大连华信资深分析师 ,ORACLE数据库专家,曾就职于甲骨文中国。个人主页:segmentfault.com/u/db_perf ,经其本人授权发布。

【免责声明】本号文章仅代表个人观点,与任何公司无关。

距上一次的《云数据库》已经过了两个多月没有更新这个系列了,不是不想写,而是没有灵感,找不到想写的东西。 最近恰巧有个老朋友要做一个开发项目,问我选什么数据库好。

为了不辜负老朋友的信任,我决定写一期关于数据库选型的文章。

先说一下这个问题的背景。放在20年前,选一个数据库似乎不是啥难题,因为可选项太少了。基本原则就是有钱任性的用ORACLE/DB2,口袋拮据的用Mysql,剩下的选SqlServer/Sybase。 可是在20年后的今天,选一个合适的数据库就变得不那么容易了,因为啥呢?可选项太多了。不算外国的数据库产品,光是国产数据库就有上百种之多,怎能不叫人乱花渐欲迷人眼呢。

下面是2021年5月最新的数据库排名,先不用关注分数和排名,只看参与排名的数据库数量是不是就有点眼花缭乱了。

2021年5月国产数据库排行榜 https://www.modb.pro/dbRank

2021年5月国际数据库排行榜 https://db-engines.com/en/ranking

那在这么多的数据库之中如何做出正确的选择呢?我觉得可以从以下几个方面进行评价。

◆预算投入

代码语言:javascript复制
●一次投入(必须投入)

   包括数据库软件/License购买费用,数据库在本地配置时的硬件(服务器,机房,网络等)购买费用。

代码语言:javascript复制
●持续投入(必须投入)

   包括数据库软件售后技术支持费用,本公司运维人员费用,数据库在云上配置时的虚拟机/服务费用。

代码语言:javascript复制
●迁移投入(非必须投入)

   数据中心迁移费用,数据库类型迁移费用。

◆数据库位置

代码语言:javascript复制
   ●是否和应用服务器放在一起
   ●是否有灾备架构
   ●是否采用公有云

◆迁移难度

代码语言:javascript复制
   ●从正在使用中的数据库类型,位置迁移到其他数据库类型,位置的难度。

◆业务类型

代码语言:javascript复制
   ●业务处理(OLTP)
   ●数据仓库(OLAP)
   ●HTAP混合型数据库

◆数据规模

代码语言:javascript复制
●初期规模

   数据库初始导入时的数据量。

代码语言:javascript复制
●增长速度

   数据的积蓄方式,增长速度以及数据增长到多大程度后考虑分库/分表/分区。

◆数据类型

◆安全需求

代码语言:javascript复制
   ●网络级别安全控制(Route,OS 层ACL 等)
   ●数据库级别访问权限控制(DB User 权限 等)
   ●高级权限控制(Audit,加密 等)

◆运维难度

代码语言:javascript复制
   ●定例运维(Backup/Recovery 等)
   ●故障处理(技术文档是否全面公开,社区论坛是否完善,既存客户数量,既存技术者数量等)
   ●扩展能力( Share Everything、Share Storage、Share Nothing 等)

以上只是简单的列出了在数据库选型时需要考虑的几个点,其实在实际操作时还需要把点扩展成面,这就需要花费很大的功夫了。

0 人点赞