在我的桌面应用程序中,我需要使用几个(2-10)数据库(使用sqlite C / C ++接口),这些数据库都具有相同的模式。我有两个选择:打开与这些数据库中的任何一个的单个连接,然后ATTACH
其他数据库,或者我可以为每个数据库打开一个单独的连接。性能会有什么不同吗?此外,SQLite documentation提到附加数据库的数量有限制,但从未提及开放连接数(限制到不同数据库)的限制。
从编码方便的角度来看,第二个选项似乎更合适:使用多个连接,我可能只是将相应的sqlite3 *对象传递给执行查询的函数,而不对这些函数进行任何修改。但是对于附加的数据库,我必须将数据库名称添加到表中,这更麻烦。
答案 0 :(得分:1)
当您修改数据并附加数据库时,SQLite需要管理单独的master journal。所以ATTACHing可能会变慢。
只有当您想要从同一查询中的多个数据库访问数据时,才需要ATTACH。