[我看到PostgreSQL有一个“询问慢查询问题的指南”,但我需要的是“询问快速查询问题的指南”:)]
好,所以我已经搜索并扫描了几个SO答案,并阅读了上述指南,但仍然没有一个更明智的选择。
我正在使用SQLite,但是遇到了一些性能问题(我认为这主要与SQLite的工作方式有关)。所以我想我应该去给Postgres一下.....
开始...
我在Windows 10,i3 1.7Ghz,8G Ram上安装了Postgres 10。将所有设置保留为默认设置。
我有一个名为“ pa”的53M行表-从SQLite导出到csv并导入到Postgres。
使用pgAdmin
select count(*) from pa ;
花了45分钟。我为它建立了索引,并花了很大的时间,但仍然令人失望,14.5分钟(尽管解释没有提到使用索引)我分析了表....但放弃了随后的查询尝试,并在几分钟后将其取消。解释分析似乎显示每个表扫描的3名工人。
在相同表/数据上具有相同索引的相同查询在SQLite中花费22秒。
是在15分钟内对53M行表中的行进行计数是否与Postgres一样好,还是有简单的解决方法?
SQLite非常快,但是与POSTGRES的时差非常令人惊讶。
也许您可以创建一个缓存数据,以便下次查询时不会花费很长时间。