Можно ли использовать SQLite в качестве базы данных клиент-сервер? [закрыто]

32

Существуют ли какие-либо методы или инструменты для работы с SQLite в среде БД среднего размера / трафика / параллелизма?

Maniero
источник
3
Можете ли вы объяснить, почему это было бы полезно? В противном случае я думаю, что это заслуживает закрытия как не настоящий вопрос. SQLite не является клиент-серверной базой данных и действительно продается тем, кому не нужна клиент-серверная база данных.
Jcolebrand
1
@Eelke, хотя это не так в режиме WAL начиная с версии 3.7 - может быть только одна запись за раз, но «читатели не блокируют писателей, а писатель не блокирует читателей»
Джек Дуглас
1
кстати, в Википедии в настоящее время, кажется, есть эта ошибка
Джек Дуглас
2
Зачем? Я думаю, что вы должны определить свои требования ... и, возможно, вы найдете более подходящую базу данных ...
AK_
3
@AK_ Основными требованиями являются полная ACID и очень простая база данных для разработки и использования. Мы создали пользовательскую версию для работы в качестве клиента-сервера, и результат просто потрясающий! Люди недооценивают возможности SQLite и переоценивают потребность в параллелизме для небольших компаний. Людям нужно открыть разум. Следовать рецепту не единственный путь. Теперь у нас есть продукт без конкуренции на нашем рынке.
Маньеро

Ответы:

25

SQLite - это встроенная база данных, и она не предназначена для использования в качестве клиент-серверной БД. Если вы действительно хотите, вы можете использовать SQLitening .

Что такое SQLitening

SQLitening - это клиент-серверная реализация очень популярной базы данных SQLite.

SQLitening - это библиотека программиста в стандартной форме Win32 DLL. Он устанавливается как стандартная служба Windows. В дополнение к режиму клиент / сервер, библиотека позволяет программисту также получать доступ к базам данных SQLite в локальном режиме. В любом режиме (локальный или клиент / сервер) база данных очень быстрая и надежная. - Источник: http://www.planetsquires.com/sqlite_client_server.htm

Гиорги
источник
4
Можете ли вы уточнить или предоставить ссылку на Что такое SQLitening? Эта ссылка идет на форум, и там нет ни слова о том, что это на самом деле.
develCuy
17

Как указывалось ранее, sqlite не является клиент-серверным приложением и не предназначен для одновременных операций.

Тем не менее, вы можете «сделать это клиент-сервер», если вы используете ssh.

ssh user@host sqlite3 databasefile select * from table

работает.

ddeimeke
источник
1
Это считается "клиент-сервер", потому что вы зашифровали соединение?
Роберт Харви
Нет, это просто из-за сети между машиной, на которой находится БД, и машиной, которая обращается к БД.
ddeimeke
4

Нет, SQLite не представляет конечную точку сети - он доступен только через файловую систему. Он делает одновременно поддерживает доступ нескольких процессов на той же машине , но при очень крупнозернистый уровне (DML блокирует всю таблицу). Таким образом, вы можете иметь дюжину процессов Apache httpd, все с открытой базой данных SQLite на локальном диске, все делают SELECTs, и все будет работать отлично. Но на самом деле, это неправильный инструмент для работы - я бы использовал Postgres в этом сценарии.

Gaius
источник
1
блокирует всю таблицу, только когда вы пишете на ней, не читая, многие процессоры могут читать из одной таблицы;)
ucefkh
3

Paradigma Software представляет Valentina Server 6.0 (в настоящее время в бета-тестировании), то есть 3 в 1:

  • Валентина БД Сервер
  • Валентина SQLite Сервер
  • Валентина Отчет Сервер

SQLite Server использует движок SQLite без изменений, WAL включен. SQLite Server работает на 3 ОС: Mac, Win, Linux .

Вы можете использовать приложение Valentina Studio (бесплатно) для управления этим сервером БД, а также mySQL, postgreSQL, SQLite, MS SQL. Он также работает как родное C ++ приложение на 3 ОС.

SQLite Server содержит такие функции, как: SSL, ACL, резервное копирование, REST API, каналы уведомлений, JSON, XML.

Прямо сейчас доступ к этому серверу может быть сделан из C ++, Xojo и LiveCode. В ближайшее время будут добавлены PHP, Java, .NET.

Бесплатная версия Valentina Server включает в себя

  • 10 подключений к БД SQLite
  • 5 подключений к БД Валентина
  • 5 подключений к Valentina Reports

Подробности вы можете прочитать в статье .

Руслан Засухин
источник
2

SQLabs предлагает коммерческий продукт под названием cubeSQL, который может удовлетворить ваши потребности.

dwurf
источник
1

Вы можете взломать что-нибудь вместе, используя netcat , но я не могу представить, что это будет очень элегантное решение.

TML
источник
-5

Вы можете использовать сервис, похожий на Dropbox . Есть собственные решения. Однако SQLite3 не был создан для модели клиент-сервер. Вы бы лучше с другими решениями, которые были разработаны на основе модели клиент-сервер.

atmosx
источник
5
Dropbox и другие сервисы синхронизации файлов НЕ являются решением этой проблемы. Dropbox не содержит никакой логики в отношении слияния изменений в базе данных, которые одновременно записывают несколько пользователей. Конечным результатом будут потеряны данные, работа и время.
Jptros