SQLite для клиент-сервер - PullRequest
       22

SQLite для клиент-сервер

9 голосов
/ 24 августа 2009

Я видел пару вопросов о производительности SQLite здесь, на Stackoverflow, но основное внимание было уделено веб-сайтам, и я рассматриваю возможность использования этой БД в сценарии клиент-сервер:

  • Я ожидаю, что 1-10 клиентов на один сервер сейчас могут увеличиться до 50 или более в будущем.
  • чуть больше читает, чем пишет
  • БД будет находиться за процессом сервера (т.е. не использовать прямой доступ к БД через сеть)

Может ли использование SQLite сделать приложение менее отзывчивым по сравнению с использованием PostgreSQL? Моя интуиция подсказывает мне, что для этих нагрузок все должно быть в порядке, но, возможно, у кого-то есть некоторый практический опыт работы с подобным сценарием.

Ответы [ 3 ]

13 голосов
/ 25 августа 2009

Я использовал SQLite для основного клиент-серверного продукта, используемого с ~ 10 одновременными пользователями, и я глубоко сожалею об этом решении . На мой взгляд, PostgreSQL гораздо более подходит для клиент-серверных сценариев, чем SQLite из-за его высокой степени детализации блокировки.

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

Мне очень нравится SQLite (я даже написал коммерческую утилиту для сравнения баз данных SQLite - SQLite Compare , но я не думаю, что она подходит, если у вас есть сценарии клиент / сервер.

Даже автор SQLite говорит , что его следует использовать в качестве замены для пользовательских форматов файлов, а не в качестве полноценного сервера базы данных. Хотел бы я более серьезно относиться к его совету ..

3 голосов
/ 24 августа 2009

Вы не упомянули, какую операционную систему и версии Postgres вы используете. Однако, прежде чем рассмотреть вопрос об изменении ядра базы данных, попробуйте выполнить некоторые записи и сравнить текущую базу данных с типичным использованием, а затем оптимизировать «самые тяжелые» вопросы. А может быть, ваша нагрузка на бэкэнд-обработку делает вопрос БД неактуальным? Поскольку SQLite является файловой СУБД, одновременный доступ из нескольких процессов приведет к снижению производительности при увеличении числа клиентов (отредактировано после комментария)

Следующий вопрос может быть полезен: Насколько масштабируем SQLite?

1 голос
/ 24 августа 2009

Я бы подтвердил ответ С. Лотта.

Я не знаю, как работает SQLite по сравнению с PostgreSQL, поскольку я не знаю никаких новых измерений, но мой собственный опыт работы с SQLite в довольно схожей среде довольно хорош.

Единственное, что может вызвать проблемы на мой взгляд, это то, что у вас довольно много записей. Но все зависит от общего количества в секунду, я бы сказал.

Кроме того, на мой взгляд, для SQLite оптимально использовать один серверный процесс, поэтому вы можете обойти его слабость в многозадачности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...