2
나는 다음과 같은 쿼리를 실행 : 내가 방금 만든 Role
를 가져 오기 할 때Neo4j 색인이 왜 적용되지 않습니까?
CREATE INDEX ON :Role(id)
+-------------------+
| No data returned. |
+-------------------+
Indexes added: 1
CREATE (:Role {id:'abc'})
+-------------------+
| No data returned. |
+-------------------+
Nodes created: 1
Properties set: 1
Labels added: 1
그리고 다음은, 어떤 이유로, 인덱스가 사용되지 않습니다. 이유를 설명해 주시겠습니까?
neo4j-sh (?)$ PROFILE MATCH (role:Role {id:'abc'})
> RETURN role.id;
+---------+
| role.id |
+---------+
| "abc" |
+---------+
1 row
7 ms
Compiler CYPHER 2.2
Planner COST
Projection
|
+Filter
|
+NodeByLabelScan
+-----------------+---------------+------+--------+---------------+----------------------------+
| Operator | EstimatedRows | Rows | DbHits | Identifiers | Other |
+-----------------+---------------+------+--------+---------------+----------------------------+
| Projection | 1 | 1 | 1 | role, role.id | role.id |
| Filter | 1 | 1 | 5 | role | role.id == { AUTOSTRING0} |
| NodeByLabelScan | 6 | 5 | 6 | role | :Role |
+-----------------+---------------+------+--------+---------------+----------------------------+
Total database accesses: 12
나는 완전히 그 옵션에 대해 잊고, 감사합니다! –
이것은 필요하지 않습니다. 노드가 거의없는 경우 쿼리 플래너가 인덱스 또는 레이블 스캔을 사용하는 이점이 없습니다. 레이블에서 701 노드부터 시작하여 2.3 색인 스캔이 사용되었습니다. –