干货 | 如何为您的应用程序有效地选择正确的数据库

【转自公众号:CloudBest】

为您的应用程序找到合适的数据库解决方案并不容易。在全球最大的在线视频网站之一爱奇艺,我们在多个领域的数据库选择方面经验丰富:在线事务处理(OLTP),在线分析处理(OLAP),混合事务/分析处理(HTAP),SQL,和NoSQL。。

今天,我将与您分享:

选择数据库要使用什么条件

我们在爱奇艺使用什么数据库

一些决策模型可帮助您有效地选择数据库

选择数据库的提示

我希望这篇文章可以帮助您轻松找到适合您的应用程序的数据库。

数据库选择标准

选择数据库时,不同的人使用不同的条件:

数据库采购人员更加关注采购成本,包括存储和网络需求。

数据库管理员(DBA)关心以下问题:

潜伏

每秒查询数(QPS)

是否支持更高级的分层存储功能

支持多个数据副本

高度可用的服务

支持多次写入和多活动架构

可靠的监视和警报系统

支持备份和还原

合理的升级和迁移成本

积极的支持社区

轻松进行性能调整

轻松排除故障

运维费用:

服务稳定性

表现

可扩展性:是否易于水平和垂直扩展

安全性:是否满足审核要求并防止SQL注入和信息泄漏

应用程序开发人员关心:

稳定的服务

表现

可扩展性

易于开发数据库界面

轻松修改数据库架构

我们在爱奇艺使用什么数据库

在爱奇艺,我们主要使用以下数据库:

MySQL

TiDB

Redis

Couchbase

大数据分析系统,例如Hive和Impala

其他数据库,例如MongoDB,HiGraph和HiKV

由于iQIYI的数据库类型太多,因此应用程序开发人员可能不知道哪个数据库适合其应用程序场景。因此,我们按应用程序场景和数据库接口对这些数据库进行了分类,并构建了一个矩阵:

X轴代表应用场景:OLTP与OLAP。

Y轴表示数据库接口:SQL与NoSQL。

图片

爱奇艺的所有数据库

该矩阵具有以下特征:

在左边

在左上角

数据库支持OLTP工作负载和SQL语言。例如,MySQL支持不同的事务隔离级别,高QPS和低延迟。我们主要使用它来存储交易信息和关键数据,例如订单和VIP信息。

在左下角

我们使用NoSQL数据库来优化特殊方案。通常,这些数据库具有简单的架构,或者它们是无架构的,具有高吞吐量和低延迟。我们主要将它们用作缓存或键值(KV)数据库。

在右边

所有这些都是OLAP大数据分析系统,例如ClickHouse和Impala。通常,它们支持SQL语言,不支持事务。它们具有良好的可伸缩性和较长的响应延迟。我们可以添加机器以扩大数据存储容量,并且响应延迟更长。

围绕两个轴的交汇点

这些数据库是中立的,我们称它们为HTAP数据库,例如TiDB。当数据量较小时,它们具有良好的性能。当数据量很大或查询复杂时,它们的性能还不错。通常,为了满足不同的应用程序需求,我们使用不同的存储引擎和查询引擎。

实用的决策树,可有效选择数据库

我想推荐我们的数据库选择树。我们根据数据库管理员和应用程序开发人员的经验开发了这些树。

如何有效选择关系数据库

选择关系数据库时,您可以:

考虑您的数据量和数据库可伸缩性。

根据以下条件做出决定:

数据库是否具有冷备份系统

是否使用TokuDB存储引擎

是否使用代理

图片

有效选择关系数据库

如何有效地选择NoSQL数据库

当我们选择的NoSQL数据库,我们必须考虑许多因素来决定是否使用主副框架,客户分片,分布式集群,Couchbase,或HiKV。

图片

有效选择NoSQL数据库

选择数据库的提示

我想与您分享一些选择数据库的提示:

尝试解决问题而不先更改数据库。您可以根据数据量,QPS和延迟确定需求,但是这些是真正的需求吗?您是否可以找到一种无需涉及数据库即可消除此要求的方法?例如,如果数据量很大,则可以先对数据进行编码或压缩,这可能会减小数据大小。不要将所有需求降低到数据库级别。

考虑选择数据库的真正原因是什么。您选择它是因为它受欢迎吗?还是因为它先进?最重要的问题是:它真的可以解决您的问题吗?例如,如果您的数据量不是很大,则不需要具有大量存储的系统。

在放弃解决方案之前,请仔细考虑。您是否因为系统不起作用而放弃了该系统?还是因为您使用不正确?很难摆脱您的解决方案,所以要清楚为什么要放弃它。例如,在做出决定之前,请比较您的TPC-C或Sysbench基准测试。

保持自我发展的良好态度。当您需要开发自己的数据库时,可以参考并使用一些成熟的产品。如果不需要,请不要从头开始构建。

拥抱开源产品。例如,TiDB是一个开源的分布式SQL数据库。它有一个活跃的社区,目前在GitHub上有26,000星。我们之前的文章描述了TiDB如何帮助我们扩展数据库并实现高可用性。当前,在生产环境中,我们有88个TiDB集群,具有1200多个节点。没有理由您必须独自去做。
【转自公众号:CloudBest】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值