мы можем получить доступ к одной базе данных SQLite из нескольких приложений Flex? - PullRequest
3 голосов
/ 19 августа 2011

Можно ли одновременно получить доступ к одной базе данных SQLite на сервере из нескольких клиентских приложений Flex (веб-приложений и приложений AIR)?

Есть ли блокировка базы данных?

Я пытаюсь сделать следующее: я хочу сохранить свои данные в базе данных SQLite на стороне сервера и хочу, чтобы приложения Flex как в Интернете, так и в AIR могли одновременно получать данные из одной и той же базы данных на сервере.

Этого можно достичь с помощью приложений SQLite и Flex?

Есть ли лучший способ добиться этого во Flex?

1 Ответ

2 голосов
/ 19 августа 2011

Я недавно немного боролся с SQLite и параллелизмом. Это своего рода сука, но это выполнимо.

Проблема в том, что когда вы выполняете запись в базу данных SQLite, вы блокируете все это (по сравнению с блокировкой строк, которую поддерживают другие решения). Если вы отправляете тонны записей из нескольких мест / потоков, вы будете сталкиваться со стенами, когда появляются ошибки «база данных заблокирована».

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

Другая проблема, с которой вы можете столкнуться при использовании SQLite, - это использование FOR UPDATE. Это используется, когда вам нужно извлечь некоторые строки, вычислить данные с учетом данных, а затем выпустить обновление без других запросов, считывающих эти строки за это время. Он не поддерживает такую ​​конструкцию. Вы можете обойти это, но вы должны явно заблокировать всю базу данных, пока вы делаете это обновление (вы увидите, что кто-то обращается к этому здесь ).

Одновременное чтение в порядке, поэтому, возможно, оно будет работать для вас.

Я полагаю, что TL; DR всего этого состоит в том, что это зависит от того, сколько одновременных попаданий вы ожидаете получить в базе данных. Если вы ожидаете многого, возможно, вам стоит поискать более надежное решение для баз данных, такое как postgresql .

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

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