选择哪个数据库将管理公司的所有数据可能是一个非常艰巨的决定。这是一个会对你的员工、合作伙伴和客户产生长期影响的问题。也许你已经在考虑一些供应商?没那么快!你是否已花时间权衡 NoSQL 与传统关系数据库的优缺点?如果没有,你来对地方了。让我们开始吧!
关系数据库管理系统(RDBMS)
除了 MySQL 之外,这类型的数据库包括 Oracle、SQL Server 和 PostgreSQL,它们具有悠久的历史(自 1970 年代以来),并且确立了最佳做法以实现最佳性能。例如,计算机科学家 E.F. Codd 制定了一套必须遵循的规则,将数据库管理系统视为关系型。 Codd还在1971年引入了数据库规范化的概念。数据库规范化是以减少数据冗余同时增进数据完整性的方式构建关系数据库的过程。
优势包括:
- 原子性、一致性、隔离和持久性(Atomicity、Consistency、Isolation、Durability,ACID)合规性. ACID 合规性通过精确建议事务如何与数据库交互来减少异常并保护数据库的完整性。
- 你的数据以结构化的方式组织。堅固的结构组织使你可以更轻松地使用数据,因为你会知道在哪里可以找到每项数据。请务必保留更新的模式图。
- 由于 RDBMS 工具已经投放市场多年,因此它们倾向于提供高质量的支持、产品套件和附加组件来管理这些数据库。
RDBMS 的最主要问题是随着数据库的增长而需要扩展它们。你可以使用某些技术,例如分片,但这些技术并非易于实施。
NoSQL 数据库
NoSQL 数据库是处理大量非结构化数据,或者当你的数据要求在一开始就不明确时的最佳选择。在这种情况下,你可能无法开发使用关系数据库的模式。于是,NoSQL 数据库提供了比传统关系数据库更多的灵活性。
优点包括:
- CouchDB、MongoDB、Cassandra 和 HBase 等 NoSQL 数据库旨在处理真正的大数据。实际上,你可以以几乎没有结构的数据库存储大量数据。此外,NoSQL 数据库允许数据混合,以及允许不同类型的数据一起存储。
- 只需要少许的努力,NoSQL 数据库就能立即扩展多个数据中心。
当然,NoSQL 数据库并非没有缺点:
- NoSQL 社区缺乏 MySQL 用户群的成熟度,因为它相对较新。虽然社区正在迅速发展,但目前的情况是,像 MySQL 这样的 SQL 数据库管理系统在经验丰富的用户基础上仍然具有优势。
- NoSQL 数据库的一个主要问题是缺乏性能测试和分析的报告工具。在传统的RDBMS,你可以在其中找到各种监控工具来帮助调整实例性能 - 例如,Navicat Monitor for MySQL/MariaDB。
- 缺乏标准化。NoSQL 的供应商倾向于使用自己的语法。这些语法可能很难掌握,并且通常与关系数据库中使用的 SQL 不兼容。
- NoSQL 数据库通常会牺牲 ACID 合规性来提高处理速度和灵活性。在于你的需要,这可能会导致一些问题。
总结
正如在今天的文章中提及到的那样,你选择的数据库类型在很大程度上取决于你将如何使用它以及要存储的数据类型。在下一篇文章中,我们将比较每个类别的一些主要产品。