Amygoing
作者Amygoing联盟成员·2020-03-04 15:35
产品经理·数据库

浅谈 如何选择适配数据库

字数 2176阅读 4354评论 0赞 2

大数据、人工智能、 区块链、 5G 、物联网 ,这些标志着世界进入数字化时代的词已不陌生, 数字经济已经发展成为新的经济形态,并稳定快速的发展,同时不断推动传统企业向数字化转型。

在这种复杂多变、个性化要求极高的业务场景中,数据库则成为了企业转型的核心。

而数据库的选型是否能满足场景的需求? 是否能支撑业务的稳定发展?甚至能否帮助企业降本增效?这些是笔者在此跟大家分享并希望有机会可一起探讨的。

在如何对数据库进行选型这个问题上,我是非常正经的与公司技术男讨论了一番,得出结论如下:

先打个比方,就像买车,要考虑车是谁开,预算是多少,性能如何,功能咋样,后期维护成本高否等等。 数据库的选取也是类似。

  1. 第一个维度,成本,这是大多数企业首考因素, 这里的成本不仅是购买数据库的产品成本,还包括学习成本、运维成本。

1.1 )产品成本:顾名思义购买数据库产品本身的费用, 同时要考虑对硬件的适配情况。硬件也是构成产品成本要素之一。一般产品适配的是市场上的 X86 服务器。

1.2 )学习成本:是否能快速上手,降低企业的人员成本及时间成本,解放他们的双手去创造更大价值。

1.3 )运维成本:数据库的安装部署、日常巡检、性能优化、备份恢复、故障处理等。

  1. 以下并列为第二维度: 性能、 功能、安全性、生态圈、

2.1 )功能:数据存储、运行管理、支持多少 PB 级的数量存储,应对高吞吐读写场景等

2.2) 性能:查询率、延时情况、高可用、对故障的捕捉、能否支持更高级的存储处理等

2.3 )安全性:首先是保护数据,以防止不合法的使用造成的数据泄露、更改或破坏,因而系统的安全性及措施也是企业选择数据库重要的选项之一。

2.4 )生态圈: 建立自己的产品生态圈,说明产品已经被认可,成熟度已经很高。兼容性强;

2.5 )可拓展性:企业选型时要考虑业务的长远发展,因此是否具备纵横延展性及灵活配置 性是很重要的考量。

以上浅析了作为购买者 + 使用者在数据库产品选型时会着重考虑的几个维度,接下来在说说对于不同的场景,该如何选 ?在这里把笔者第一篇数据库分类表放在这里想必是极好的

 关系型数据库

是表格式的存储,通过行和列表现形式表现出来,两者之间很容易关联协调存储,可以进行 join 等复杂查询,最大优点是保持数据一致。 关系型数据库对数据集中控制,统一定义,拥有丰富的完整性,因此减少了数据冗余,降低了维护和管理数据的成本。

目前关系型数据库在市场应用已很广泛,被熟知的有 Oracle 、 DB2 、 MySQL 、 Microsoft SQL Server 、 Microsoft Access 等,但随着互联网技术飞速发展, 各行各业面临着大规模数据量爆发,高吞吐、高并发的业务场景已经是大多企业面临的挑战,因此分布式关系型数据库登上了舞台,所以在选型的时候要考虑数据量到底多大; 当我们面对的是银行类业务,对数据库的安全性、稳定性、可扩展性要求极高的时候, 或者像淘宝双十一这种会有极大的数据存储与访问的问题时候,要考虑分库分表的原理跟实现,以及读写分离的实现。在这样的情况下,若只是一味的增加硬件,结果可能只是成本上去了,单库的的资源仍然会达到瓶颈。当读远远大于写的时候,要考虑所选产品读写分离的性能优势。如 ;Cobar 有分库无分表,可以让传统数据库有很好的延展性; Mycat 支持读写分离,以及分库分表,容灾管理; DRDS 闭源,能够对传入的 SQL 进行解析和处理; TIDB 架构相对复杂,水平伸缩是不会停止服务,较适应新型互联网公司,成熟度低,成本中。 HotDB, 在同行业的分布式事务数据库产品中,性价比较高,支持在线弹性扩展并且产品突破分布式一致性协议限制,能提供更高的计算节点可用性 在金融领域应用较多,已经形成生态圈,成熟度高。 **

‚ 非关系型数据库的选择:

NoSQL 并不是 ”NO SQL” 的意思,是 Not Only SQL 的简在,在实际的应用中,对于对性能有更高要求,数据量更大的场景有绝对的优势,擅长处理非机构化数据。但目前主流的还是关系型数据库, NoSQL, 不够稳定与成熟。

如果是文档型数据库,主要用于事件记录,用来管理用户评论,注册、进行网站浏览量的存储,实时分析等场景, MongoDB 是目前这类数据库中比较热门的,可以存储比较复杂的数据类型,最大特点是查询语言强大,支持高性能服务存储,以及大量 UPDATE 操作,但 M ongoDB 不支持事务操作,不支持 join 操作,所以在遇到这种场景的时候,大家要酌情考虑用 MongoDB. 如果是基于 Lotus Notes 的应用,文档型数据库比建值数据库查询效率更高,推荐 : CouchDB 、 MongoDB 、 SequoiaDB , 按照优先级,笔者更推荐 CouchDB ,主要是因为它的 MVCC 机制,但不要尝试在查询频率高、有分析场景下使用 CouchDB, 主要是 Couch 的性能达不到这种高要求。 SequoiaDB ,是以 JSON 格式存储的文档型模型,具有很好的灵活性和高扩展性,能很好满足大数据场景的要求。但如果针对 OLTP 场景,不建议用 SequoiaDB 。

以上是跟大家分享的几个点,对大家选型的时候起到一个参考作用

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

2

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广