Есть ли в памяти база данных, которая поддерживает функцию DATE? - PullRequest
1 голос
/ 02 мая 2010

Я провожу модульное тестирование DAO, которая работает с postgresql. Некоторые из запросов SQL, которые использует мой DAO, включают функцию DATE. Существует ли база данных в памяти, которая поддерживает функции, аналогичные тем, которые выполняет postgresql?

В настоящее время я ищу поддержку функции DATE, но я, очевидно, могу видеть, что буду использовать другие функции в будущем.

Ответы [ 3 ]

3 голосов
/ 02 мая 2010

sqlite3 поддерживает в памяти и имеет функции DATE .

1 голос
/ 24 мая 2011

Проверьте также базу данных TimesTen In-Memory. Очень быстро и имеет TO_DATE функцию:

Command> SELECT TO_DATE ('1999, JAN 14', 'YYYY, MON DD') FROM dual;
< 1999-01-14 00:00:00 >
1 row found.
0 голосов
/ 02 мая 2010

В linux вы можете создать базу данных «в памяти» с помощью postgresql, используя виртуальный диск. Цитирование из темы в списке рассылки postgresql:

На мой взгляд, очень хорошее решение создание части базы данных PostgreSQL в памяти - ниже это инструкция как построить схему PostgreSQL в память в линуксе. Я проверил это с моим ROLAP раствор для пересчета MOLAP кубики в памяти, а затем присоединиться к мастер-куб (ускоряет процесс около 10 раз !!! - но в других решение может быть разным).

В grub (или другом загрузчике) вы должны объявить ramdisk и затем в ОС:

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" не пусто)

И тогда вы можете создавать таблицы (в эта схема конечно) и пишите им.

Я не пробовал это, я не уверен на 100%, что это работает без проблем. Также обратите внимание, что в том же потоке они предлагают другой механизм БД с поддержкой памяти, но не упоминают о функции DATE Другие rdbms могут получить пользу от ramdisk также, если они поддерживают табличное пространство.

EDIT

Ex:

CREATE TABLESPACE inram LOCATION '/mnt/ram0/pgspace';
CREATE TABLE foo(i int) TABLESPACE inram;

foo таблица теперь должна быть таблицей в памяти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...