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 |
- |
✔ |