Я создал приложение на C # с использованием Neo4j.Driver.V1, которое читает из CSV и записывает его в графическую базу данных neo4j.
Мой CSV имеет 1000 записей. Каждая запись разбита на 5 узлов с отношениями между ними.
Весь процесс занимает 1 минуту 11 секунд (включая 1 секунду на мою логику для построения запроса).
Это слишком много, учитывая, что они будут загружать миллионы записей.
Вот мой запрос:
MERGE
(accountd71d278a8eeb468f9e4517ac1e007fe5:Account
{
number: '952'
} )
ON CREATE
SET accountd71d278a8eeb468f9e4517ac1e007fe5 +=
{
number: '952',
balanceType: 2,
accountType: 2,
openDate: apoc.date.parse('7/9/2015', 'ms', 'm/d/YYYY')
}
MERGE (account13aa03cd1b6d449e88a3e5e5a22353da:Account
{
number: '198'
} )
ON CREATE
SET account13aa03cd1b6d449e88a3e5e5a22353da +=
{
number: '198'
}
MERGE (transactionba1459c4f7854157be237e7365497fcf:Transaction
{
number: '1'
} )
ON CREATE
SET transactionba1459c4f7854157be237e7365497fcf +=
{
number: '1',
amount: 3717.81,
type: 2,
date: apoc.date.parse('2016-05-27', 'ms', 'YYYY-mm-dd')
}
MERGE (bank3679799504f54bed9f079848be9c6eff:Bank
{
code: 'MMBC'
} )
ON CREATE
SET bank3679799504f54bed9f079848be9c6eff +=
{
code: 'MMBC',
country: 'Mongolia'
}
MERGE (bank522b6b6ed04d40bd9d87d4ecc36fbde2:Bank
{
code: 'VALL'
} )
ON CREATE
SET bank522b6b6ed04d40bd9d87d4ecc36fbde2 +=
{
code: 'VALL',
country: 'Mongolia'
}
MERGE (accountd71d278a8eeb468f9e4517ac1e007fe5)-[:credits]->(transactionba1459c4f7854157be237e7365497fcf)
MERGE (accountd71d278a8eeb468f9e4517ac1e007fe5)-[:residesWith]->(bank3679799504f54bed9f079848be9c6eff)
MERGE (transactionba1459c4f7854157be237e7365497fcf)-[:debits]->(account13aa03cd1b6d449e88a3e5e5a22353da)
MERGE (account13aa03cd1b6d449e88a3e5e5a22353da)-[:residesWith]->(bank522b6b6ed04d40bd9d87d4ecc36fbde2)
Есть идеи, как мне сократить время моего запроса?
Прежде чем предлагать какие-либо идеи, вот что я уже пробовал:
- Удаление длинных имен с помощью GUID
- Удалить использование анализа даты apoc
- Рассматривается использование функции импорта из csv в сборке, но БД находится на другом сервере
- Объединение нескольких запросов записи (и в результате, 2 сразу работает лучше)
- Созданные ограничения
Заранее спасибо!
K
![EXPLAIN](https://i.stack.imgur.com/8uHKY.jpg)