我有一个网站,我需要存储有关客户的数据,所以我做了以下系统:
我在服务器上创建了一个名为database的文件夹。在其中我创建了一个名为customers的文件夹。在这个文件夹中,我存储了几个 JSON 文件,由客户的 ID 标记。在 JSON 文件中,我存储了客户的数据。
这是该系统的一个小插图:
?database -> ?customers -> ? customer_14.json
-> ? customer_15.json
-> ...
我觉得这个系统其实挺好的,实现起来也很容易。但是当我把它展示给我的朋友时,他说我应该使用MySQL而不是这个系统。他说我的速度慢、不安全、不可靠。
现在我想知道,像MySQL这样的专业数据库相对于这个系统的优势在哪里?有吗?
首先,那里有许多不同的数据库。如果需要存储 JSON 文档,MongoDB 等文档数据库可能是比关系数据库更好的选择。
MySQL 是传统的 SQL 关系型数据库。
如果你有关系数据,这显然是一件好事;它使描述关系和查找数据变得容易。
但是,如果您存储与任何外部数据无关的 JSON 文档,这实际上是没有意义的——这就是我们使用 MongoDB 等文档数据库的原因。
文档数据库可以提供搜索、存储和索引等工具。这意味着它们可能比基于文件系统的实现具有更好的性能。此外,它们可能是分布式的、具有冗余选项、锁定和其他可能相关或不相关的特征。
但是,如果您在 JSON 文档中实现了关系数据 - 随着系统的增长,您将面临一个痛苦的世界。规范化的一个方面是确保数据只存在于一个地方,而不是重复的。这使得更新和维护记录变得容易——如果同一条信息存储在数千个不同的地方,这很困难——可能以不同的格式。
简而言之:如果您有 5 个文档和一个用户,那并不重要。但是数据库允许可扩展性和网络上的统一访问方法,从而可以轻松地在不同应用程序之间扩展和共享数据。
你的问题没有固定的答案;这取决于您如何使用数据。但一般的答案是人们使用数据库系统是因为它们使事情变得更容易,而不是因为他们很愚蠢或喜欢增加复杂性。