используя SQLite ATTACH - PullRequest
       2

используя SQLite ATTACH

3 голосов
/ 19 апреля 2011

у нас есть две базы данных sqlite, у нас есть требование «прикрепить» одну к другой и выполнить несколько соединений.у нас есть некоторые вопросы / проблемы, как показано ниже:

  1. скажем, мы подключили DB1 к DB2 и выполнили некоторые операции SELECT, может ли какой-либо другой поток одновременно выполнить UPDATE / INSERT в DB2 или DB1 с другим соединением?
  2. есть ли отдельный C API для подключения или нам нужно использовать "sqlite3_step"
  3. как производительность с ATTACH.

Заранее спасибо

DEE

1 Ответ

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

  2. ATTACH - это одношаговая операция, вы можете нас sqlite3_exec.

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

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