Neo4j是世界上领先的图数据库,它开始就是为了图数据库而创建的,即它的架构就是设计为快速的管理,存储和遍历节点和关系,在这其中,关系为Neo4j里面最重要的部分。node
在传统的关系型数据库,JOIN操做的性能会随着成倍的关系查找而成倍的下降,可是在Neo4j对应的操做只是从一个节点导航到另外一个节点,它的性能是一条直线。算法
这二者不一样的存储和查询方式为neo4j提供了每秒核接近400W的遍历性能。因为图数据查找大多都是由一个节点查询它的关联的大量的邻节点,因此数据库中存储的数据总量对查询时间并不会形成影响。专用的内存管理,高扩展,快速的内存的操做,都对整个操做有益。数据库
图的属性也是很是友好的,这就意味着,经过Neo4j的可选模式模型,给咱们提供了咱们一直使用的相同的架构构想,设计,试试,存储和可视化。一个最主要的益处就是它容许全部的利益相关者参与整个项目开发周期,特别是域模式能够一直随着需求的变动的变化,这就避免了模式改变和迁移形成的大量的花销。编程
Cypher, 一个声明式的图查询语言,设计为直观的展现节点和关系的图形模式。这个高可用且易读的语言是以特定的领域和问题为中心的模式。Cypher也能够扩展为特定的用例的窄优化。浏览器
做为敏感的紧凑型存储数据库,Neo4j能够为万亿级别的大数据集实体提供存储。做为生产环境,它能够部署为可扩展的,高容错的集群机器。因为它的高可扩展性,neo4j只须要几十台机器,而不是几百上千台,节省成本和减小操做的复杂性。其余的生产环境应用特性包括热备份,密集监控。缓存
1.1 版本安全
1.1.1 社区版 社区版是一个neo4j的全功能版本,适合单实例的部署。它只是全部的关键性特性,例如, ACID规则,Cypher,可编程性API。主要用于neo4j的学习、我的项目、小团队项目。架构
1.1.2 专业版 专业版扩展了社区版的功能,包括社区版主要特性的性能和扩展性,好比说高可用,在线热备的集群架构功能。特别还有安全特性包括角色级别的登陆控制,支持LDAP协议,好比说,活动的目录,它是高可用,可扩展的生产环境系统的选择,诸如商业解决方案和关键内部方案。app
1.1.3 特性细节 表1.1 特性性能
特性 | 社区版 | 专业版 |
---|---|---|
标签属性图模型 |
✔ |
✔ |
原生图存储&处理 |
✔ |
✔ |
ACID事务 |
✔ |
✔ |
Cypher图查询语言 |
✔ |
✔ |
Neo4j浏览器语法高亮显示 |
✔ |
✔ |
Bolt二进制协议 |
✔ |
✔ |
C#, Java, JavaScript & Python 语言驱动 |
✔ |
✔ |
高性能本地API |
✔ |
✔ |
高性能缓存 |
✔ |
✔ |
基于成本的优化器 |
✔ |
✔ |
图算法库支持AI协议 |
✔ |
✔ |
高速写和本地标签索引 |
✔ |
✔ |
Composite indexes(综合索引?) |
✔ |
✔ |
Slotted and Compiled Cypher runtimes 运行时编译和跟踪 Cypher |
- |
✔ |
Property-existence constraints 属性-存在约束 |
- |
✔ |
Node Key schema constraints 节点键模式约束 |
- |
✔ |
Listing and terminating running queries 列出和终止运行的语句 |
- |
✔ |
Auto-reuse of space 自动重用空间 |
- |
✔ |
Role-based access control 角色级别的访问控制 |
- |
✔ |
Subgraph access control 子图的访问控制 |
- |
✔ |
Property-level security 属性级别的安全 |
- |
✔ |
LDAP and Active Directory integration 集成LDAP和活动目录 |
- |
✔ |
Kerberos security option Kerberos 安全性选项 |
- |
✔ |
表1.2 性能和扩展性
版本 | 社区版 | 专业版 |
---|---|---|
Causal Clustering for global scale applications |
- |
✔ |
多集群 |
- |
✔ |
Enterprise lock manager accesses all cores on server |
- |
✔ |
Intra-cluster encryption |
- |
✔ |
Offline backups |
✔ |
✔ |
Online backups |
- |
✔ |
Encrypted backups |
- |
✔ |
Rolling upgrades |
- |
✔ |
Automatic cache warming |
- |
✔ |
Routing and load balancing with Neo4j Drivers |
- |
✔ |
Advanced monitoring |
- |
✔ |
Graph size limitations |
34B nodes, 34B relationships, 68B properties |
No limit |
Bulk import tool |
✔ |
✔ |
Bulk import tool, resumable |
- |
✔ |