Лучший способ написать запрос CYPHER - PullRequest
0 голосов
/ 04 февраля 2020

Я пытался своим простым CYPHER уменьшить попадание в БД.

PROFILE MATCH (origin:CS_LOCATION), (destination:CS_LOCATION)
WHERE origin.location_id in[635] AND destination.location_id in[1104642] 
RETURN origin, destination;
-------------------+----------------+------+---------+-----------+---------------------+---------------------------+
| Operator          | Estimated Rows | Rows | DB Hits | Cache H/M | Identifiers         | Other                     |
+-------------------+----------------+------+---------+-----------+---------------------+---------------------------+
| +ProduceResults   |            625 |    1 |       0 |       0/0 | destination, origin |                           |
| |                 +----------------+------+---------+-----------+---------------------+---------------------------+
| +CartesianProduct |            625 |    1 |       0 |       0/0 | destination, origin |                           |
| |\                +----------------+------+---------+-----------+---------------------+---------------------------+
| | +NodeIndexSeek  |             25 |    1 |       2 |       0/0 | destination         | :CS_LOCATION(location_id) |
| |                 +----------------+------+---------+-----------+---------------------+---------------------------+
| +NodeIndexSeek    |             25 |    1 |       2 |       0/0 | origin              | :CS_LOCATION(location_id) |
+-------------------+----------------+------+---------+-----------+---------------------+---------------------------+

Здесь я вижу CS_LOCATION дважды, и я вижу, что он выполнил удар по БД 2 раза. Есть ли я в любом случае, могу переписать CYPHER, чтобы вторая ссылка CS_LOCATION считывала его из кэша?

1 Ответ

1 голос
/ 04 февраля 2020

Нет смысла ожидать, что произвольный второй узел будет в кеше после получения другого первого узла.

В сторону: ваш запрос фактически выполняет в общей сложности 4 обращения к БД.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...