Neo4j 数据导入与索引

关系数据库却不是最擅长关系的,最擅长关系的是图数据库neo4j。先说mysql,在数据多了之后,mysql的联表查询速度下降的非常快,尽管可以分表等等操作,增加了复杂性不说,也并非最佳方案,有种用错了工具的感觉。关系数据库中最流行用的最广泛的就属neo4j了。可惜仅社区版是免费的,企业版收费。他们的区别在于企业版支持集群等功能,社区版不支持。

1. 安装

Neo4j官网,下载community版安装。也可以使用yum安装,比较方便。

2 图形操作界面

运行 ./neo4j start
启动成功后,在浏览器中打开网页:[http://localhost:7474], 即可进入Neo4j的图形操作界面
界面非常友好,按照向导可以一步一步学习Cypher语句。

3 数据导入

如果是第一次使用neo4j,或者说你需要一个新的数据库,建议使用import语句,速度非常快。本人使用的1000万个节点2000万边导入大概在十几分钟完成。具体需要看使用机器与导入数据的属性多少有关系。
一般情况下,都是需要从mysql导入到neo4j中。这里需要导出csv文件,然后添加头部文件。
节点文件的头部
"partyId:ID(Party-ID)","name"
"1","小明"
"2","小红"
关系文件的头部
:START_ID(Party-ID),:END_ID(Party-ID),address
"1","2","学校"
//导入命令
./bin/neo4j-admin import --id-type INTEGER --nodes:Party import/user.csv --relationships:LIKE import/relationship.csv

这里说一下运行这个命令之前需要停数据库,如果以前新建过库需要删掉,默认graph库。 neo4j-import命令已经不再支持请使用neo4j-admin import,--id-type INTEGER意思为id类型为INTEGER比STRING类型快。然后指定两个csv文件。就开始导入了。

4 建立索引

neo4j本身也是数据库,经常查询的字段需要建立索引。
CREATE INDEX ON : ()
例如create index on:Student(name)
建立索引可以让你的查询效率提高很多,代价是插入速度会减慢一些,如果对实时性要求没那么高的话,是非常值得的。
如果字段唯一要创建唯一索引,查询效率更高
create constraint on (s:Teacher) assert s.name is unique

你可能感兴趣的:(Neo4j 数据导入与索引)