内存数据库是否支持DATE功能?

时间:2010-05-02 14:50:05

标签: unit-testing postgresql

我正在为与postgresql一起使用的DAO进行一些单元测试。我的DAO使用的一些SQL查询涉及DATE函数。是否有内存数据库支持类似于postgresql的功能?

目前我正在寻找对DATE功能的支持,但是我显然可以看到自己将来会使用其他功能。

3 个答案:

答案 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表现在应该是内存表。