有人可以向我解释一下 MySQL 等关系数据库与 Neo4j 等图形数据库相比的优缺点吗?
在 SQL 中,您有多个表,它们具有不同的 id 链接。然后你必须加入来连接表。从新手的角度来看,为什么要将数据库设计为需要联接,而不是像图形数据库那样从一开始就将连接明确地作为边。从概念上讲,这对于新手来说毫无意义。大概有一个非常技术性但非概念性的原因?
最佳答案
这两种风格背后实际上都有概念推理。维基百科 the relational model和 graph databases对此给出了很好的概述。
主要区别在于,在图形数据库中,关系存储在单个记录级别,而在关系数据库中,结构是在更高级别定义的(表定义)。
这会产生重要的影响:
- 关系数据库在处理大量数据时速度要快得多 的记录。在图数据库中,必须检查每条记录 在查询期间单独确定结构 数据,而这在关系数据库中是提前知道的。
- 关系数据库使用较少的存储空间,因为它们没有 存储所有这些关系。
仅当关系存在大量变化时,将所有关系存储在个人记录级别才有意义;否则你只是一遍又一遍地重复同样的事情。这意味着图数据库非常适合不规则、复杂的结构。但在现实世界中,大多数数据库都需要规则的、相对简单的结构。这就是关系数据库占主导地位的原因。
关于sql - 关系数据库和图数据库的比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13046442/