我正在为与postgresql一起使用的DAO进行一些单元测试。我的DAO使用的一些SQL查询涉及DATE函数。是否有内存数据库支持类似于postgresql的功能?
目前我正在寻找对DATE功能的支持,但是我显然可以看到自己将来会使用其他功能。
答案 0 :(得分:3)
sqlite3支持in-memory,并且DATE functions。
答案 1 :(得分:1)
查看TimesTen内存数据库。非常快,并具有TO_DATE
功能:
Command> SELECT TO_DATE ('1999, JAN 14', 'YYYY, MON DD') FROM dual;
< 1999-01-14 00:00:00 >
1 row found.
答案 2 :(得分:0)
在linux中,您可以使用ramdisk在postgresql中创建“内存数据库”。在postgresql邮件列表中引用a thread:
在我看来,非常好的解决方案是 构建PostgreSQL数据库的一部分 在记忆中 - 下面是指令 如何构建PostgreSQL架构 Linux中的内存。我用我的测试了 用于重新计算MOLAP的ROLAP解决方案 内存中的多维数据集然后加入 主立方体(这加快了过程 大约10次!!! - 但在其他方面 解决方案可能有所不同。)
在grub(或其他bootloader)中你必须 声明ramdisk然后在OS中:
mke2fs /dev/ram0
mkdir /mnt/ram0
mount /dev/ram0 /mnt/ram0
mkdir /mnt/ram0/pgspace
chown postgres:postgres mnt/ram0/pgspace
“/ mnt / ram0 / pgspace”文件夹必须是 空(错误:目录“/ mnt / ram0” 不是空的)
然后你可以创建表格(在 当然这个架构)并写入 它们。
我没试过这个,我不是百分百肯定这个没有问题。另请注意,在同一个线程中,他们建议使用内存支持的其他数据库引擎,但不提及DATE
函数。如果它们支持表空间,其他rdbms也可以从ramdisk中受益。
修改强>
例如:
CREATE TABLESPACE inram LOCATION '/mnt/ram0/pgspace';
CREATE TABLE foo(i int) TABLESPACE inram;
foo
表现在应该是内存表。