Я извлекаю данные из индекса в моей базе данных neo4j, и у меня возникают проблемы со временем выполнения. Я пытаюсь выполнить запрос, в котором я просто подсчитываю полученные значения. В моей производственной базе данных я делаю более сложные вычисления. Во всяком случае, мой запрос выглядит примерно так,
START person = node:user_index('muncipalityCode:(1278 OR 1285 OR 1283 OR 1293 OR 1284 OR 1261 OR 1282 OR 1262 OR 1281 OR 1280 OR 1273) ')
return count(person)
Счетчик возвращает 278418 примерно через 20 секунд (2,5-3 секунды во второй раз, когда кэш теплый). Конечно, я возвращаю довольно большой набор данных. Однако он не огромен.
Могу ли я где-нибудь уменьшить это узкое место или некоторые параметры конфигурации, которые мне следует изучить? Я пытался разогреть кеш при запуске, но не могу поместить все данные в оперативную память на моем рабочем сервере, поэтому это имеет неприятные последствия (у моего сервера 16 ГБ ОЗУ).
Моя база данных имеет следующие атрибуты. 10 329 245 узлов 97 923 564 свойства 50 697 532 связи
START person1 = node:user_index('muncipalityCode:1278), person2=node:user_index('muncipalityCode:1285 ),person3 = .... RETURN count(person1)+count(person2)+count(person3)...
- person ulkas   schedule 07.02.2013