Afaik,SQLite将单个数据库存储在一个文件中.由于这会降低使用大型数据库时的性能,是否可以明确告诉SQLite不要将整个数据库存储在单个文件中,而是将不同的表存储在不同的文件中?
小智 23
这个问题大约有三年了,但是当我搜索同样的问题时,我就到了这里.我发现晚了,它有可能:
使用
sqlite3.exe MainDB.db
ATTACH DATABASE 'SomeTableFile.db' AS stf;
从其他数据库文件访问该表
SELECT * FROM stf.SomeTable;
您甚至可以加入多个文件
SELECT *
FROM MainTable mt
JOIN stf.SomeTable st
ON (mt.id = st.mt_id);
Run Code Online (Sandbox Code Playgroud)
https://www.sqlite.org/lang_attach.html
tameera说有62个附加数据库的限制,但我从未达到这个限制所以我无法确认.
除了一些特殊情况之外,最大的优点是限制了数据库文件中的碎片,您可以在每个表上单独使用VACUUM命令!
如果您不需要在这些表之间进行连接,则可以手动拆分DB并说明哪些表位于哪个DB(= file)中.
我不认为让SQLite在多个文件中分割您的数据库是可能的,因为您通过告诉文件名连接到数据库.
| 归档时间: |
|
| 查看次数: |
13987 次 |
| 最近记录: |