SQLite параллелизм выдает прерыватель сделки? - PullRequest
1 голос
/ 30 июня 2010

Я смотрю базы данных для домашнего проекта (ASP.NET MVC), который я мог бы в конечном итоге разместить. Прочитав аналогичный вопрос здесь о переполнении стека, я решил перейти на MySQL.

Тем не менее, простота использования и развертывания SQLite заманчива, и я хотел бы подтвердить свои причины, прежде чем полностью ее списать.

Моя цель - поддерживать сообщения о статусе пользователя (например, Twitter). Это будет означать в основном одну таблицу с парами user-id / status-message. Операция чтения / вставки / удаления для сообщения о состоянии. Никаких изменений не требуется.

После прочтения следующего параграфа я решил, что SQLite не может работать для меня. У меня действительно есть простая база данных, но, поскольку ВСЕ мои транзакции работают с той же таблицей, у меня могут возникнуть некоторые проблемы.

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

Мое понимание наивно? Будет ли SQLite работать нормально для меня? Также предлагает ли MySQL что-то, чего не может SQLite при работе с ASP.NET MVC? Простота разработки в VS может быть?

Ответы [ 2 ]

3 голосов
/ 30 июня 2010

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

1 голос
/ 01 июля 2010

Мне не удалось заставить работать даже простые утверждения SQLite для поддержки - даже после того, как пару раз запросил SO.

Редактировать С тех пор, как я написал выше,Я смог получить одновременную запись и чтение для работы с SQLite.Похоже, что я неправильно удалял сеансы NHibernate - установка блоков Using для всего кода, создавшего сеансы, решила проблему. / Edit

Но это, вероятно, хорошо для вашего приложения, особенно с записью с опережением записи, которую упоминает пользователь380361.

Небольшая площадь, установка в один файл, быстрая, работает хорошос NHibernate, бесплатным, общественным достоянием - очень хороший продукт почти во всех отношениях!

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