2016-09-20 2 views
4

Я создаю приложение Electron, для которого мне нужно выбрать вложенную базу данных NoSQL. Фактически, эта база данных должна содержать локальное подмножество данных, хранящихся на удаленном брандмауэре ArangoDB. Я много искал в Интернете, но до сих пор не смог сблизиться с окончательным кандидатом. Я надеюсь, что кто-нибудь может посоветовать мне опыт.Нужна встраиваемая база данных NoSQL, которая обрабатывает наборы данных ~ 1Gb, сохраняется на диске

Типичные наборы данных составляют, возможно, десятки тысяч документов, и я могу представить случаи, когда набор будет составлять ~ 1 Гбит с течением времени. Кроме того, мне нужны вторичные индексы.

Я посмотрел на PouchDB, UnQlite, LokiJS, LevelDB, NeDB, LinvoDB ...

В конце концов, NeDB и LinvoDB, кажется, как разумные кандидаты с сохранением на диск (SQlite типа), где NeDB не может обрабатывать большие наборы данных; то, что LinvoDB, вилка NeDB, похоже, может справиться. LinvoDB не загружает всю базу данных в память, но, по-видимому, индексирует «все» по умолчанию и сохраняет это в памяти.

С другой стороны, я попытался выполнить несколько разговоров относительно их индексов, где NeDB, по-видимому, предлагает в своей документации, что они сохраняются на диске (https://github.com/louischatriot/nedb#indexing), после того, как он был создан, который затем снова будет отменен LinvoDB (извините, я потерял многие из котировок/источников на огромном количестве вкладок, открытых ...), предлагая индексы строить с нуля при запуске. (И также я могу неправильно понять документацию NeDB.)

В принципе, мне нужно, это решение базы данных JS для приложения Electron, которое может содержать «значительные», но не «огромные» объемы данных. Время загрузки приложения должно быть разумным (то есть не препятствовать использованию), но при этом быть отзывчивым (то есть, база данных должна содержать вторичные индексы) и, насколько это возможно, уважать ресурсы пользователя.

Вопросы:

  1. ли кто-нибудь опыт работы с выше или других встроенных баз данных NoSQL, с помощью которых любой из них или других могут быть рекомендованы для моего случая использования?
  2. Если индексы LinvoDB нужно перестраивать с нуля каждый раз, когда я запускаю приложение, может ли это быть значительным хитом производительности (время загрузки порядка секунд)? (Конечно, мне нужно было бы сравнить это ...)
  3. ArangoDB не является встраиваемым, но, возможно, мне стоит рассмотреть возможность его развертывания как службы вместе с моим родным приложением? Эта ссылка NoSQL database: ArangoDB, по-видимому, предполагает, что сами разработчики не препятствуют этому. Будет ли это излишним и/или не удобным для пользователя? Выиграла производительность?

Любые рекомендации действительно будут оценены.

ответ

0

Рассматривали sqlite? Существует npm package и он работает с электроном, я попробовал сам. Вам нужно только rebuild electron, это может вызвать некоторые проблемы.не

Вот ваши ответы:

  1. да у меня нет, но не так много
  2. нет Я никогда не пытался LinvoDB
  3. нет Я никогда не пытался ArangoDB слишком
+0

Да, но, как указано в названии, я ищу NoSQL db, чтобы хранить документы JSON и атрибуты индекса. –

2

Имейте такая же потребность, кажется, linvodb3 - лучший выбор в настоящее время. Он находится в позитивном развитии, и цель посвящена среде рабочего стола Electron.

+0

У меня очень хорошие впечатления от LokiJS. Чрезвычайно быстрая и пара приятных функций! –

Смежные вопросы