对于典型的Rails应用程序,我将从SQLite切换到PostgreSQL。
问题是,运行规格变得缓慢与PG。
在SQLite上,它花费了~34秒,而在PG上,它是~76秒,这是慢2倍以上...
所以现在我想应用一些技巧使规范的性能与SQLite媲美。没有任何代码修改(理想情况下,只需要设置连接选项,这可能是不可能的)。
我头上有几件显而易见的事情是:
正如您可能已经理解的,我不关心可靠性和其余部分(DB只是一个抛弃的东西)。
我需要从控球中得到最大的收获尽可能快...
最佳答案最理想的描述戏法为了做到这一点,设置和这些技巧的缺点。
最新情况:fsync = off
+full_page_writes = off
仅将时间缩短到~65秒(~-16秒)。开局不错,但远未达到34的目标。
更新2:我尝试使用RAM磁盘但性能增益在误差范围内。所以似乎不值得。
更新3:*我发现了最大的瓶颈,现在我的规范运行速度与SQLite一样快。
问题是数据库清理导致了截断显然SQLite在那里太快了。
要“修复”它,我打开一个交易在每次测试之前,最后再把它滚回去。
700次测试的一些数字。
SQLite的速度提高了2倍。4倍的速度增长为PG。
发布于 2017-12-27 09:43:45
https://stackoverflow.com/questions/-100005213
复制相似问题