我有PostgreSQL数据库。它用于单元测试。
您对内存数据库的选择有什么建议吗?我希望该数据库与PostgreSQL兼容。
发布于 2012-08-01 19:41:35
我只需在tmpfs中创建一个数据库目录(在PostgreSQL中称为集群)(在大多数Linux发行版中配置为RAM-dis-/dev/shm),并在非标准端口上运行postgres,例如:
initdb -D /dev/shm/pgtest
postmaster -D /dev/shm/pgtest -p 11111发布于 2012-08-01 17:39:59
我建议使用带有spring组合的HSQL。我现在的职业就是做这件事,即使这是件令人头痛的事,也是可以做到的。在快速研究的基础上,出现了hsql与PostgreSQL兼容。。如果你还有其他问题,请告诉我。
发布于 2012-08-02 00:03:13
你需要为此放弃Pg吗?
如果您是针对不同的数据库进行单元测试,而不是在生产中运行,那么您的测试就不会那么好了。
试试这个:优化用于快速测试的PostgreSQL。
..。看看你过得怎么样。
更新:您可能认为将所有内容都放在一个ramdisk上会使测试速度大大加快,但您可能弄错了。将未使用的数据泄漏到磁盘上通常更有效,这样系统就可以为手头的任务使用更多的RAM。使用unlogged表和正确的异步提交,或者(仅用于测试,将吃掉您的数据) fsync=off应该可以获得非常相似的速度。
如果您确实需要一个真正的内存表,那么在ramdisk或tmpfs上创建一个文件系统,并在其中创建一个新的集群。您最好使用UNLOGGED表,这样它们就不会遍历预写日志。
请注意,虽然tmpfs是一个ramdisk,但它允许较少使用的页面进入交换空间。如果由于某种原因必须将所有数据固定在内存中,则需要使用ramdisk驱动程序和在ramdisk上创建文件系统。我的建议是:不要这样做。只需为快速测试正确配置Pg即可。
https://stackoverflow.com/questions/11764487
复制相似问题