0
我正在建设一个图像数据库,其中包含具有UUID字段和其他图像属性,如EXIF数据的节点。我会一直通过UUID字段搜索图像节点,它会有一个索引。Neo4j的图像数据库 - 性能考虑
MATCH(img:Image {id:“ea191df3-f5e5-4a29-ae93-f850866f90d1”})RETURN img;
在Neo4j中这样做是否有任何性能劣势?
我正在建设一个图像数据库,其中包含具有UUID字段和其他图像属性,如EXIF数据的节点。我会一直通过UUID字段搜索图像节点,它会有一个索引。Neo4j的图像数据库 - 性能考虑
MATCH(img:Image {id:“ea191df3-f5e5-4a29-ae93-f850866f90d1”})RETURN img;
在Neo4j中这样做是否有任何性能劣势?
假设您通过CREATE CONSTRAINT ON (image:Image) ASSERT image.id IS UNIQUE
创建唯一性约束,您提出的建议非常有意义。 这样的约束不仅强制执行id
唯一性,还自动创建id
索引。
还有就是每次更新索引成本添加一个Image
(或更改图像id
),但除非你有比搜索许多更多的更新,储蓄在搜索图像要远远超过成本。
我会使用一个约束,而不是索引,'CREATE CONSTRAINT ON(image:Image)ASEERT image.id IS UNIQUE' – subvertallchris 2014-12-06 17:21:37
@subvertallchris感谢您的改进。我编辑了我的答案。 – cybersam 2014-12-06 17:39:13
很高兴你在'assert'中发现了我的错字。 ;-) – subvertallchris 2014-12-07 00:56:04