Может ли SQLite поддерживать нескольких пользователей?
Я пытаюсь разработать приложение на базе Windows с несколькими пользователями, одновременно получающими доступ к одной базе данных. Может ли SQLite поддерживать множественный доступ за один раз? Является ли SQLite устойчивым в этом отношении? Что делает SQLite лучше или хуже MS SQL CE?
Спасибо.
Ответы
Ответ 1
Да SQLite может поддерживать сразу несколько пользователей. Тем не менее, он блокирует всю базу данных при записи, поэтому, если у вас много параллельных записей, вам не нужна база данных (обычно время блокировки базы данных составляет несколько миллисекунд, поэтому для большинства целей это не имеет значения). Но он очень хорошо протестирован и очень стабилен (и широко используется), поэтому вы можете доверять ему.
Вы можете прочитать этот короткий документ для информации, когда использовать SQLite, а не: http://www.sqlite.org/whentouse.html
Ответ 2
Если одновременная запись является проблемой, вы можете посмотреть Berkeley DB. SQL API полностью совместим с SQLite. Фактически, он включает в себя верхушку исполнительного элемента SQLite для Berkeley DB, который поддерживает несколько одновременных операций записи.
Ответ 3
Да.
Из абзаца № 5 в часто задаваемых вопросах SQLite:
Несколько процессов могут одновременно открывать одну и ту же базу данных. Несколько процессов могут одновременно выполнять SELECT. Однако только один процесс может вносить изменения в базу данных в любой момент.