我正在创建一个同时使用MySql和Neo4j的应用程序。我认为列出表中的许多节点属性在查询特定节点集(甚至之前)之后读取所有节点的速度会更快,但我很容易被证明是错误的。毕竟找到一行的属性是关系dbs的用途。
为了确保一致性,我在每个节点上创建了一个属性,它是我的sql表中的auto_increment ID。
我希望neo4j允许索引属性而不管标签如何但事实并非如此,我很难理解为什么这根本不可能。
问题是:如果索引是在一个数字而不是字符串上,你认为neo4j的性能会好得多吗?我在想是否删除数字ID并坚持使用node.name
答案 0 :(得分:2)
你can configure indexes on properties without referring to particular labels。您可以通过修改node_auto_indexing
中的conf/neo4j.properties
来完成此操作。
如果你想比较简单的相等,我猜测数字的索引可能会稍微快一些,但我怀疑差异是否足够大,非常有意义,除非字符串替换非常大。
答案 1 :(得分:0)
另一种选择是使用auto_id节点属性在该标签上放置AutoInc标签和索引。
假设auto_id是您添加到所有节点以引用MySQL auto_increment ID列的属性,则:
CREATE INDEX ON AutoInc:(auto_id)
MATCH(n)
SET n :AutoInc