在python中,如何在连接之前将sqlite数据库完全加载到内存

0 投票
最新提问 1月 7, 2017 用户: yass (220 分)
我有一个100兆字节的sqlite数据库文件,我想在执行sql查询之前把全部数据加载到内存。能不能在Python中做到这一点?

2 个回答

0 投票
最新回答 1月 7, 2017 用户: 飞飞鱼
 
已采纳

APSW是sqlite的一个替代的包装器,使您能够在操作前将磁盘上的数据库备份到内存。

示例代码如下:

###
### Backup to memory
###

# We will copy the disk database into a memory database

memcon=apsw.Connection(":memory:")

# Copy into memory
with memcon.backup("main", connection, "main") as backup:
    backup.step() # copy whole database in one go

# There will be no disk accesses for this query
for row in memcon.cursor().execute("select * from s"):
    pass

connection是你磁盘上的数据库。

0 投票
最新回答 1月 7, 2017 用户: 蓝海

如果你正在使用Linux,你可以试试tmpfs这是一个基于内存的文件系统。

tmpfs很容易使用:

  1. 将tmpfs挂载到目录。
  2. 将sqlite db文件复制到目录。
  3. 打开它作为正常的sqlite db文件。

记住,tmpfs中的任何东西都会在重新启动后丢失。所以,如果更改,您可以将db文件复制回磁盘。

欢迎来到编程助手,编程方面有什么不懂的问题可以尽管在这里提问,你将会收到热心爱好者的回答。
...