使用SQLite ATTACH

时间:2011-04-19 13:02:17

标签: sqlite

我们有两个sqlite DB,我们要求将一个“附加”到另一个并执行一些连接。我们有一些问题/疑虑如下:

  1. 说我们已经将DB2附加到DB2并执行了一些SELECT,是否可以在DB2或DB1上使用不同的连接同时进行其他线程UPDATE / INSERT?
  2. 是否有单独的C API要附加,或者我们需要使用“sqlite3_step”
  3. ATTACH的表现如何。
  4. 先谢谢

    DEE

1 个答案:

答案 0 :(得分:1)

  1. 另一个线程可以同时更改任一数据库,但这意味着在某些时候可以为查询线程锁定数据库。请点击此处了解concurrency with SQLite

  2. ATTACH是一步操作,您可以sqlite3_exec

  3. 性能是一项难以预测的事情,并且会因模式,索引,使用情况和存储的数据(以及其他一些因素,如页面大小)而有很大差异。在某些情况下,ATTACH可能比所有数据都在一个数据库中要慢。我的个人经验是,对于插入来说,分离大型数据集的速度更快,并且最小/不可察觉地影响最终查询输出。您的里程可能会有所不同。