SQLite: [Одно соединение + Несколько подключений] против [Несколько соединений] - PullRequest
0 голосов
/ 10 июня 2018

В моем настольном приложении мне нужно работать с несколькими (2-10) базами данных (используя интерфейс sqlite C / C ++), которые имеют одинаковые схемы.У меня есть два варианта: открыть одно соединение с любой из этих баз данных, а затем ATTACH остальные базы данных, или я могу открыть отдельное соединение для каждой базы данных.Будет ли разница в производительности?Кроме того, документация SQLite упоминает, что существуют ограничения на количество подключенных БД, но никогда не упоминает ограничения на количество открытых подключений (к различным базам данных).

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

1 Ответ

0 голосов
/ 10 июня 2018

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

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

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