3

我有一个内存中的 SQLite 数据库,我想对其进行序列化并发送到另一台计算机。如果不将数据库写入磁盘并从那里读取文件,这是否可能?

4

2 回答 2

2

您可以使用在线备份 API 将内存数据库传输到在共享内存中创建的基于文件的数据库(对于 Linux,例如在 /dev/shm 中),从而避免磁盘操作。然后这个伪文件被传输到远程主机(仍然放在 /dev/shm 中),并使用在线加载 API 从基于文件的数据库传输到您的目标内存数据库。

看:

http://www.sqlite.org/backup.html

http://www.sqlite.org/c3ref/backup_finish.html

AFAIK,没有中间数据库就没有 API 来执行在线/加​​载。

于 2012-08-10T17:10:35.797 回答
2

sqlite3 shell 程序包含一个.dump“以 SQL 文本格式转储数据库”的命令。您可以使用源代码.dump(它是公共领域)来创建自己的序列化程序。

于 2012-08-10T18:24:42.763 回答