Параллельность в системах баз данных с / без сервера - PullRequest
0 голосов
/ 13 октября 2011

Обычно отмечается, что простые системы баз данных, у которых нет сервера (например, GDBM, SQLite и т. Д.), Слабее для одновременных подключений.

  1. Как сервер базы данных обрабатывает одновременные подключения, чтобылучший параллелизм?

  2. Я думаю, что параллелизм чтения лучше в системах баз данных без сервера, поскольку нет ограничений для чтения данных из плоского файла.Ограничение должно быть доступной памяти, я прав?

  3. Проблема заключается в параллельности записи, так как файл будет заблокирован.Таким образом, только одна запись за один раз.Я думаю, что это также относится и к Mysql (с движком MyISAM, так как блокировка в InnoDB ограничена строкой).Практически существует ли одновременная запись?

В целом, как параллелизм системы базы данных с сервером (например, Mysql) лучше, чем система без сервера (например, SQLite)?

1 Ответ

0 голосов
/ 13 октября 2011
  1. Многие серверы баз данных поддерживают транзакции и блокировку на уровне строк

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

  3. Во многих реальных системах вы будете иметь смесь чтенияи пишет.Параллельно пишет на практике?Подумайте о стековом потоке или любом занятом форуме, будет много одновременных записей.

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

Я слышал от Trac список рассылки, этот SQLite бэкэнд практичен до тех пор, пока не понадобится несколько разработчиков, после того как переключение на MySQL или Postgres станет необходимым.

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