简介
Neo4j是一个高性能、高可靠性、可扩展、支持ACID事务的图数据库,它基本由Java语言实现,支持数据平台的平滑扩展和过渡,同时能够在多种系统上完成部署,它使用Cypher查询语言对数据进行增删查改。Neo4j采用属性图模型对数据进行建模,能够以相同的速度遍历结点与边,其遍历速度与构成图形的数据量没有任何关系。
同类软件对比
我们将Neo4j与同类软件进行对比,发现其是最适合我们的也是目前最受欢迎的图数据库。
DB Engines排名
https://db-engines.com/en/ranking/graph+dbms
通过排名我们可以看出来neo4j的受欢迎程度远远超过了同类软件。
优缺点比对
优点
Neo4j图数据库是一个能够适应业务需求不断变化和大规模数据增长而产生的数据库,它不但具有很强的适应能力,而且能够自始至终保持高效的查询性能,并且具有坚如磐石般的事务管理特性等特点
- 闪电般的读/写速度,无与伦比的高性能表现。
- 非结构化数据存储方式,在数据库设计上具有很大的灵活性。
- 很容易使用,可以用嵌入式、服务器模式、分布式模式等方式来使用数据库。
- 使用简单框图就可以设计数据模型,方便建模。
- 图数据的结构特点可以提供更多更优秀的算法设计。
- 完全支持ACID完整的事务管理特性。
- 提供分布式高可用模式,可以支持大规模的数据增长。
- 数据库安全可靠,可以实时备份数据,很方便恢复数据。
- 图的数据结构直观而形象地表现了现实世界的应用场景
缺点
- 极慢的插入速度
- 超大节点。当有一个节点的边非常多时(常见于大V),有关这个节点的操作的速度将大大下降。这个问题很早就有了,官方也说过会处理,然而现在仍然不能让人满意。
- 提高数据库速度的常用方法就是多分配内存,然而看了官方操作手册,无法直接设置数据库内存占用量,而是需要计算后为其”预留“内存
体系结构
经过对其体系结构的精炼总结,可以得出:
Neo4j是一个图数据库,它由三部分组成,节点、关系、属性。