LINUX.ORG.RU

Какую встраиваемую реляционную СУБД порекомендуете?

 embedded database, , , , встраиваемая субд


1

2

Собственно требования:

  • кроссплатформенность (Windows (7 и старше), Linux, MacOSX)
  • биндинг к C и C++
  • поддержка большой базы данных (где-то несколько сотен таблиц, в самой большой таблице будет где-то около миллиона записей)
  • быстрый поиск среди этого миллиона записей
  • бесплатность и открытость
  • колонок в таблицах будет меньше 100.

Собственно скорее всего выбором будет SQLite, хотя задумываюсь про MySQL, т.к. с последним мне немного довелось поработать, хотя не во встраиваемом случае.

★★★★★

Сколько потоков/ядер процессора планируется?

Если больше 16 и под постоянной нагрузкой, то MySQL будет лучше.
Если реально будет 1-2 потока работы с базой и надо быстро включать и выключать приложение, хранимки, тригеры, евенты не нужны: лучше SQLite

ihanick
()
Ответ на: комментарий от ihanick

Реально будет 1-2 потока работы с базой, приложение будет работать постоянно пока работает компьютер, триггеры могут потребоваться, как и евенты.

peregrine ★★★★★
() автор топика

после прочтения критериев возник вопрос: что в вашем понимании «встриваемая СУБД»?

а так - да, если мускул подходит (хоть ни разу и не встраиваемый), то юзайте его (либо его форки - mariadb и т.п.). или постгрю. или что-то еще.

NiTr0 ★★★★★
()
Ответ на: комментарий от NiTr0

хоть ни разу и не встраиваемый

В википедии написано что существует встраиваемая версия, может кто про неё слышал? встраиваемая СУБД это СУБД, которая не требует отдельную установку и настройку отдельного сервера и живет внутри/рядом с процессом/потоком приложения, реализация обычно в виде подключаемой библиотеки. В данном случае мне важно чтобы пользователя вообще не напрягала СУБД, для пользователя всё должно быть предельно просто - установил, демон с СУБД прописался в автозапуск (основная задача демона - индексация файлов время от времени и автоматическое заполнение базы), а дальше есть GUI для работы с базой + плагины, скажем для synapse в Linux для поиска в базе с последующим запуском GUI.

peregrine ★★★★★
() автор топика

где-то несколько сотен таблиц, в самой большой таблице будет где-то около миллиона записей
встраиваемая субд

крестик || трусы

sqlite

эпичный факап прозреваю я.

anonymous
()
Ответ на: комментарий от kardapoltsev

поддержка большой базы данных (где-то несколько сотен таблиц, в самой большой таблице будет где-то около миллиона записей)

darkenshvein ★★★★★
()
Ответ на: комментарий от darkenshvein

Пока никаких проблем не вижу. Все зависит от кривизны рук, сложности и характера запросов.

kardapoltsev ★★★★★
()
Ответ на: комментарий от anonymous

эпичный факап прозреваю я

Правильно прозреваешь, но запросов будет мало, т.к. все запросы простые (на поиск по конкретному столбцу, ну иногда по нескольким) и писать что искать будет человек своими руками в одиночку, т.е. несколько пользователей одновременно не будут грузить базу.

peregrine ★★★★★
() автор топика

Немного дополнений: Встраивание или поставка бинарников mysql как часть коммерческого приложения (у которого исходники не под gpl) потребует лицензии «Q6: What is Oracle's commercial license for MySQL software?».

У libmysqld есть несколько ограничений http://dev.mysql.com/doc/refman/5.7/en/libmysqld-restrictions.html

С mysql придётся крутить параметры по-умолчанию,

Триггеры в sqlite, как совершенно справедливо написал анонимный аноним, есть и отлично работают (всего в 3 раза медленнее чем без триггера, но это нормально для всех баз).

Так что для поставленных условий задачи sqlite довольно неплохо подходит, а с mysql есть шансы так же накосячить как KDEшники с KMail

ihanick
()
Ответ на: комментарий от peregrine

встраиваемая - это типа sqlite, в виде библиотеки + устойчивость к внезапным прекращениям работы хоста. mysql/mariadb - ни разу не встраиваемые. говоря о них, можно говорить и о постгрес, и о фаербёрд, и о ms sql server.
твои требования - это просто требования простоты установки и настройки субд. просто автоматизируй установку и настройку своей любимой субд - и всё.
для мелкой задачи, но с возможностями нормальной субд вполне можно можно брать firebird.

taker
()
Ответ на: комментарий от taker

так же накосячить как KDEшники с KMail

Что за история?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.