你总是选不对应该使用的数据库?这里5步教你解决这些忧愁

“我只选择X , 这是我知道并使用过的数据库” 。
在为项目选择数据库时 , 大多数开发人员和学生都使用此语句 。 如果性能不是系统的重要要求 , 那么使用您已经熟悉的数据库就可以了 , 但是要考虑应用程序增长的情况 , 并且几年后您的应用程序开始遇到一些问题 。 对于开发人员和管理员来说 , 解决该问题将变得头疼 。 无论您是从头开始工作还是已经在成熟的项目上工作 , 了解数据库的局限性并确定何时在项目中添加另一种类型的数据库都非常重要 。
你总是选不对应该使用的数据库?这里5步教你解决这些忧愁
文章图片
市场上有300多种数据库管理系统可供选择 , 对于开发人员来说 , 选择其中的一种可能不胜枚举 。 在关系数据库(MySQL , PostgreSQL , OracleDB等)和非关系数据库(MongoDB , ApacheHBase , Cassandra等)中 , 您有多种选择 , 但是您需要了解它们适不适合所有类型的项目要求 。 他们每个人都有自己的优点和缺点 。 让我们看一些案例研究 , 这些案例说明如何为应用程序选择正确的数据库 。
1.集成
选择正确的数据库时要考虑的最重要的事情是您需要将什么系统集成在一起?确保您的数据库管理系统可以与项目中的其他工具和服务集成 。 不同的技术对于不同的其他技术具有不同的连接器 。 例如 , 如果您有一项大型分析工作当前正在运行ApacheSpark那么您可能想将自己限制在可以轻松连接到ApacheSpark的外部数据库上 。 现在假设您有一些前端系统 , 实际上它依赖于后端的SQL接口 , 并且您正在考虑从整体数据库迁移到非关系数据库 。 如果您要移动的非关系数据库提供了类似SQL的界面 , 并且可以轻松地从前端应用程序迁移到该界面 , 那么这将是一个不错的选择 。 因此 , 请考虑一下需要在系统中一起讨论的部分 , 看看它们是否可以与现有的现成组件一起实际进行对话 , 以及这些组件实际上是否维护得很好并且是最新的 。
另一个例子是ArangoDB , 它具有出色的性能 , 但是该DBMS的库仍然很年轻并且缺乏支持 。 将ArangoDB与其他工具结合使用可能会带来风险 , 因此社区建议在复杂项目中避免使用ArangoDB 。
你总是选不对应该使用的数据库?这里5步教你解决这些忧愁
文章图片
2.扩展需求
在安装生产数据库之前 , 了解扩展要求非常重要 。 您实际上在谈论多少数据?随着时间的流逝 , 它真的会无限增长吗?如果是这样 , 则您需要某种数据库技术 , 而不仅限于可以存储在一台PC上的数据 。 您需要查看诸如Cassandra或MongoDB或HBase之类的东西 , 您实际上可以在整个集群中分布数据存储并水平而不是垂直扩展 。 由于扩展问题 , 许多数据库无法处理成千上万的用户查询TB或PB的数据 。
在选择数据库时 , 您还需要考虑事务速率或吞吐量这表示您打算每秒收到多少个请求 。 具有高吞吐量的数据库可以支持许多同时用户 。 如果我们谈论的是成千上万 , 那么单一的数据库服务将无法解决 。 当您在一些大型网站上工作时 , 这一点尤其重要 , 在这些网站上我们有很多同时服务于许多人的Web服务器 。 您将必须选择一个分布式的数据库 , 并允许您更平均地分散这些事务的负载 。 在这种情况下 , NoSQL数据库是代替RDBMS的不错选择 。
你总是选不对应该使用的数据库?这里5步教你解决这些忧愁
文章图片
3.支持考虑
考虑一下您可能需要的数据库支持 。 您是否有内部专家来启动这项新技术并进行实际配置?这将比您想象的要难 , 尤其是如果您在现实世界中或在最终用户中混合使用个人可识别信息的情况下使用此功能 。