Какую СУБД выбрать?
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 07.12.20 18:02
Оценка:
Здравствуйте!

Каких-то особых требований нет, и я бы наверное предпочёл SQLite, но он вроде не даёт одновременного доступа к одной БД из разных процессов. Хочется что-то такое же легко, не требующее отдельной установки, чтобы можно было с собой и базу и движок таскать, но позволяющее шарить БД между процессами

UPD Сорян, что-то забыл вот еще что. От самой СУБД сказал что хочу, а вот то, что я хочу из джавы и из плюсиков использовать — забыл. Из джавы — много-много писатель и редко-редко читатель, из плюсиков — наоборот

UPD2 Ещё сорян, мне нужно под винду тока
Маньяк Робокряк колесит по городу
Отредактировано 08.12.2020 20:00 Marty . Предыдущая версия . Еще …
Отредактировано 08.12.2020 16:06 Marty . Предыдущая версия .
Re: Какую СУБД выбрать?
От: gyraboo  
Дата: 07.12.20 18:22
Оценка:
Здравствуйте, Marty, Вы писали:

M>Каких-то особых требований нет, и я бы наверное предпочёл SQLite, но он вроде не даёт одновременного доступа к одной БД из разных процессов. Хочется что-то такое же легко, не требующее отдельной установки, чтобы можно было с собой и базу и движок таскать, но позволяющее шарить БД между процессами


А если коннекшн закрывать после запроса?
Re: Какую СУБД выбрать?
От: Dym On Россия  
Дата: 07.12.20 18:38
Оценка: 6 (1)
Здравствуйте, Marty, Вы писали:

M>Каких-то особых требований нет,

Раз требований нет, бери любую

M>Хочется что-то такое же легко, не требующее отдельной установки, чтобы можно было с собой и базу и движок таскать, но позволяющее шарить БД между процессами

Ну и бери SQLite, вот тут пишут

Yes SQLite can support multiple users at once. It does however lock the whole database when writing, so if you have lots of concurrent writes it is not the database you want (usually the time the database is locked is a few milliseconds — so for most uses this does not matter). But it is very well tested and very stable (and widely used) so you can trust it.


Может еще чего-нибудь хочется? Ну там изолированных транзакций из коробки?
Счастье — это Glück!
Re[2]: Какую СУБД выбрать?
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 07.12.20 18:55
Оценка:
Здравствуйте, gyraboo, Вы писали:

M>>Каких-то особых требований нет, и я бы наверное предпочёл SQLite, но он вроде не даёт одновременного доступа к одной БД из разных процессов. Хочется что-то такое же легко, не требующее отдельной установки, чтобы можно было с собой и базу и движок таскать, но позволяющее шарить БД между процессами


G>А если коннекшн закрывать после запроса?


Да можно, но кто гарантирует, что несколько процессов не захотят одновременно что-то записать? Или SQLite содержит защиту от этого, как-то лочит файл базы? Мне почему-то казалось, что там и такого нет
Маньяк Робокряк колесит по городу
Re[2]: Какую СУБД выбрать?
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 07.12.20 19:01
Оценка:
Здравствуйте, Dym On, Вы писали:

M>>Каких-то особых требований нет,

DO>Раз требований нет, бери любую




M>>Хочется что-то такое же легко, не требующее отдельной установки, чтобы можно было с собой и базу и движок таскать, но позволяющее шарить БД между процессами

DO>Ну и бери SQLite, вот тут пишут
DO>

DO>Yes SQLite can support multiple users at once. It does however lock the whole database when writing, so if you have lots of concurrent writes it is not the database you want (usually the time the database is locked is a few milliseconds — so for most uses this does not matter). But it is very well tested and very stable (and widely used) so you can trust it.


Хм, вполне норм. А что будет, интересно, если одновременно есть писатель и читатели?


DO>Может еще чего-нибудь хочется? Ну там изолированных транзакций из коробки?


Да не
Маньяк Робокряк колесит по городу
Re[3]: Какую СУБД выбрать?
От: Dym On Россия  
Дата: 07.12.20 19:05
Оценка: +1
Здравствуйте, Marty, Вы писали:

M>Хм, вполне норм. А что будет, интересно, если одновременно есть писатель и читатели?

Надо смотреть. Я лично опыта не имел. В принципе можно прикрутить какую-нибудь приблуду, типа диспетчер запросов, через которую лазать непосредственно в базу. Ну или поискать, может уже кто-то прикрутил
Счастье — это Glück!
Re[4]: Какую СУБД выбрать?
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 07.12.20 19:37
Оценка:
Здравствуйте, Dym On, Вы писали:

M>>Хм, вполне норм. А что будет, интересно, если одновременно есть писатель и читатели?

DO>Надо смотреть. Я лично опыта не имел. В принципе можно прикрутить какую-нибудь приблуду, типа диспетчер запросов, через которую лазать непосредственно в базу. Ну или поискать, может уже кто-то прикрутил

Так этот диспечер надо наверно выносить в отдельный процесс? Опять геммор
Маньяк Робокряк колесит по городу
Re: Какую СУБД выбрать?
От: vsb Казахстан  
Дата: 07.12.20 19:45
Оценка: 3 (1) +1
PostgreSQL
Re[3]: Какую СУБД выбрать?
От: gyraboo  
Дата: 07.12.20 20:35
Оценка:
Здравствуйте, Marty, Вы писали:

M>Здравствуйте, gyraboo, Вы писали:


M>>>Каких-то особых требований нет, и я бы наверное предпочёл SQLite, но он вроде не даёт одновременного доступа к одной БД из разных процессов. Хочется что-то такое же легко, не требующее отдельной установки, чтобы можно было с собой и базу и движок таскать, но позволяющее шарить БД между процессами


G>>А если коннекшн закрывать после запроса?


M>Да можно, но кто гарантирует, что несколько процессов не захотят одновременно что-то записать? Или SQLite содержит защиту от этого, как-то лочит файл базы? Мне почему-то казалось, что там и такого нет


Движок лочит файл бд на время коннешна, поэтому второй процесс не сможет подключиться и можно сделать чтобы он ожидал освобождения файла.
И ещё, на всякий случай, делай составные запросы в транзакциях, чтобы избежать неконсистентности.
Re[4]: Какую СУБД выбрать?
От: Sharov Россия  
Дата: 08.12.20 00:50
Оценка:
Здравствуйте, gyraboo, Вы писали:

G>Движок лочит файл бд на время коннешна, поэтому второй процесс не сможет подключиться и можно сделать чтобы он ожидал освобождения файла.

G>И ещё, на всякий случай, делай составные запросы в транзакциях, чтобы избежать неконсистентности.

Вроде бы блокировка на запись настраивается. Либо ключами, либо самому с директивами пересобрать. Либо делать отдельный процесс для бд.
Кодом людям нужно помогать!
Re[2]: Какую СУБД выбрать?
От: AlexGin Беларусь  
Дата: 08.12.20 06:06
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>PostgreSQL


Кстати, хорошая СУБД (и кроссплатформенная при этом).
Не требуется покупки — т.к. это open source приложение.

Уже полтора года как мы применяем в своих проектах.
Отредактировано 08.12.2020 6:08 AlexGin . Предыдущая версия .
Re: Какую СУБД выбрать?
От: varenikAA  
Дата: 08.12.20 06:13
Оценка:
Здравствуйте, Marty, Вы писали:

M>Здравствуйте!

если java, то
https://www.h2database.com/html/main.html
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[2]: Какую СУБД выбрать?
От: Dym On Россия  
Дата: 08.12.20 06:59
Оценка:
Здравствуйте, varenikAA, Вы писали:

AA>если java, то

AA>https://www.h2database.com/html/main.html
На OpenJDK заведется? Или ей только Oracle нужен?
Счастье — это Glück!
Re[3]: Какую СУБД выбрать?
От: varenikAA  
Дата: 08.12.20 07:47
Оценка: +1 :)
Здравствуйте, Dym On, Вы писали:

DO>Здравствуйте, varenikAA, Вы писали:


AA>>если java, то

AA>>https://www.h2database.com/html/main.html
DO>На OpenJDK заведется? Или ей только Oracle нужен?

Кончено, это же не дотнэт)))
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[3]: Какую СУБД выбрать?
От: MadHuman Россия  
Дата: 08.12.20 07:57
Оценка: 11 (2) :)
Здравствуйте, Marty, Вы писали:


M>Хм, вполне норм. А что будет, интересно, если одновременно есть писатель и читатели?

писатели читателям не мешают (если WAL режим). может быть одновременно много читателей, они другу другу тоже не мешают.
чтоб упереться в эксклюзивную запись, это надо достаточно высокую нагрузку иметь.
у меня в продакшине используется, на 300 юзеров на одной базе, более 5лет, 30Гб база. проблем нет.
Отредактировано 08.12.2020 7:59 MadHuman . Предыдущая версия .
Re[5]: Какую СУБД выбрать?
От: gyraboo  
Дата: 08.12.20 08:00
Оценка:
Здравствуйте, Sharov, Вы писали:

G>>Движок лочит файл бд на время коннешна, поэтому второй процесс не сможет подключиться и можно сделать чтобы он ожидал освобождения файла.

G>>И ещё, на всякий случай, делай составные запросы в транзакциях, чтобы избежать неконсистентности.

S>Вроде бы блокировка на запись настраивается. Либо ключами, либо самому с директивами пересобрать. Либо делать отдельный процесс для бд.


Ну да.
А ещё у неё есть шифрование (правда тоже нужна пересборка).
В итоге выходит, что найти альтернативу будет очень тяжело.
Я для всех своих шароварных проектов именно её использую.
Хотя один раз работал в проекте десктопного приложения, который Postgres использует, и это сделано прозрачно для юзера — т.е. никаких запусков серверов, всё скрыто от юзера. В этом плане постгрес конечно круче sqlite по многим параметрам.
Re[2]: Какую СУБД выбрать?
От: white_znake  
Дата: 08.12.20 08:04
Оценка: +2
Здравствуйте, vsb, Вы писали:

vsb>PostgreSQL


Странно, человек раздумывает об inproc бд, а ты ему навороченную бд в клиент серверной архитектуре предлагаешь.
Re[3]: Какую СУБД выбрать?
От: gyraboo  
Дата: 08.12.20 08:09
Оценка:
Здравствуйте, white_znake, Вы писали:

vsb>>PostgreSQL


_>Странно, человек раздумывает об inproc бд, а ты ему навороченную бд в клиент серверной архитектуре предлагаешь.


Вообще-то я написал, что найти альтернативу sqlite трудно.

Про постгрес упомянул просто как ремарка на полях, т.к. работал в проекте, где постгрес был интегрирован с программой совершенно бесшовно и без всей тяжести клиент-серверной архитектуры — запуск серверов, проброс портов докера и прочих телодвижений. Причем у программы есть и десктопная версия, и мобильные сборки для андроида и ios. И какого-то клиент-серверного оверхеда я не наблюдал — всё работало очень шустро, запуск программы — буквально за пару секунд. Рекомендовать такой подход не стану, т.к. не знаю всех деталей реализации, возможно там есть какие-то ноу-хау.
Re: Какую СУБД выбрать?
От: sfsoft Россия  
Дата: 08.12.20 08:11
Оценка: +1 -1 :)
Здравствуйте, Marty, Вы писали:

M>Каких-то особых требований нет, и я бы наверное предпочёл SQLite, но он вроде не даёт одновременного доступа к одной БД из разных процессов. Хочется что-то такое же легко, не требующее отдельной установки, чтобы можно было с собой и базу и движок таскать, но позволяющее шарить БД между процессами


Под твоё описание идеально подходит Firebird Embedded. Полноценный SQL-сервер. В редакции Embedded устанавливается файловым копированием.
Re[4]: Какую СУБД выбрать?
От: gyraboo  
Дата: 08.12.20 08:11
Оценка:
Здравствуйте, gyraboo, Вы писали:

G>Здравствуйте, white_znake, Вы писали:


vsb>>>PostgreSQL


_>>Странно, человек раздумывает об inproc бд, а ты ему навороченную бд в клиент серверной архитектуре предлагаешь.


G>Вообще-то я написал, что найти альтернативу sqlite трудно.


G>Про постгрес упомянул просто как ремарка на полях, т.к. работал в проекте, где постгрес был интегрирован с программой совершенно бесшовно и без всей тяжести клиент-серверной архитектуры — запуск серверов, проброс портов докера и прочих телодвижений. Причем у программы есть и десктопная версия, и мобильные сборки для андроида и ios. И какого-то клиент-серверного оверхеда я не наблюдал — всё работало очень шустро, запуск программы — буквально за пару секунд. Рекомендовать такой подход не стану, т.к. не знаю всех деталей реализации, возможно там есть какие-то ноу-хау. Зато возможности для программы открывались широкие — при необходимости можно было подключаться к удаленному бд серверу совершенно так же, как к локальному (естественно, что в терминах программы фигурировал не БД-сервер, а "хранилище данных"). С sqlite так просто удаленный доступ не организовать.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.