Neo4j和TigerGraph都是非常优秀的图数据库,有幸做过两者的对比,现总结如下:
横向对比结果
对比版本
- Neo4j 3.1.0企业版
- TigerGraph0.9.x(老版本,当时还叫graphSQL)
技术细节
- TigerGraph创建点类型的时候,必须指定此类型的点的key;Neo4j无需指定,但可以通过创建唯一约束的方式实现类似的效果
- Neo4j两个点之间,同一类型的边可以有多条;TigerGraph两个点之间同类型的边只能有一条,正因如此,TigerGraph要定位一条边,只需要确定两个顶点的key和边的类型即可
- TigerGraph的查询语言GSQL是需要编译的,TigerGraph会自动把GSQL翻译成C++,再编译成二进制执行;Neo4j的查询语言cypher,是解释型语言,运行时由Neo4j解释运行,Neo4j也有需要编译的查询方式,也就是写Neo4j的plugin,编译成jar包后放在NEO4j_HOME/plugins下
从两者的技术特点来看,Neo4j灵活性还是更好的,cypher和GSQL的语法都相对简单,无法实现特别复杂的逻辑,但Neo4j可以写plugin,这就是用java写的了,灵活性还是非常高的,这一点TigerGraph的厂商也是很坦诚的说,Neo4j有很多现成的算法实现(如apoc和algo)