Memgraph是否支持复合索引?多属性索引创建及查询咨询
Memgraph复合索引支持情况与多属性查询优化
复合索引支持情况
Memgraph完全支持复合索引,你可以为指定标签创建包含多个属性的索引,适配你当前的查询场景。
针对你给出的查询语句:
MATCH (n:Node) WHERE n.id = xyz AND n.source = abc;
可直接创建覆盖id和source两个属性的复合索引,创建语句如下:
CREATE INDEX ON :Node(id, source);
索引创建完成后,上述查询会自动调用该复合索引加速节点匹配,大幅提升查询效率。
不支持复合索引时的替代优化方案
如果使用旧版本Memgraph或特殊场景下无法创建复合索引,可通过以下方式优化多属性查询:
- 创建单属性独立索引:分别为
id和source创建单独索引
查询时Memgraph会优先选择选择性更高的索引过滤数据,再对结果集做二次筛选,可有效提升查询速度。CREATE INDEX ON :Node(id); CREATE INDEX ON :Node(source); - 合并高频查询属性:若该属性组合查询频率极高,可将
id与source拼接为单个复合属性(如id_source),为该属性创建索引,查询时直接匹配这个复合属性。
内容的提问来源于stack exchange,提问作者KateLatte
相关产品推荐
相关产品推荐

