有人知道如何在Perl、MATLAB或Java中将现有的数据库(Sqlite 3)加载到内存中以进行快速计算吗?首选Perl。
我正在开发一个需要大量计算的项目,我想保持真实数据库不变。因此,我想将整个Sqlite3数据库读入内存,并在内存中执行任何操作。
我了解内存数据库连接的基础知识,但似乎Perl只能使用这种方式创建新数据库,而不能加载现有的数据库(这是我想要实现的选项)。
&sqlite_backup_from_file
方法在DBD::SQLite
中进行操作。如果您在':memory:'数据库上打开它,外部的数据库将被读入其中。相应的&sqlite_backup_to_file
方法允许您在完成后将其写回。这些函数实际上只是备份的C接口的包装器。解决这个问题的一种方法是将SQLite数据库保存在RAM驱动器上。
在 Windows 上,我以前使用过以下 RAMDisk 驱动程序而没有任何问题:
http://members.fortunecity.com/ramdisk/RAMDisk/ramdriv.htm
虽然不太用户友好,但非常稳定,具有一些不错的功能。
在 Linux 上,您可以尝试类似于以下命令:
# mkdir /mnt/ramdisk
# chmod 777 /mnt/ramdisk
# mount -t tmpfs -o size=128M tmpfs /mnt/ramdisk/