如何解决为什么使用自定义查询时pgbench会非常慢?
我在文件select * from table_name
中写下了一个简单的查询query.sql
。我像这样启动pgbench
:
pgbench -h host -p 5432 -Uusername -t 10 -f query.sql -n db_name
执行1个事务大约需要2分钟,而完成10个事务则需要20分钟才能完成基准测试。考虑到如果我自己运行select * from table_name
,它会在不到2秒的时间内执行(返回50000+行),所以速度非常慢。
当我运行pgbench
并进行自己的测试(不提供我的自定义sql脚本)时,它似乎可以正常工作,因为我每秒获得约200个事务。
我想知道为什么我的脚本这么慢,是否有办法解决?
解决方法
假设您需要读取整个数据集,pgbench是提供准确结果的一种。 DataGrip仅预读行的一部分。如果要向pgbench的查询添加一个LIMIT,它也会更快。
对于
select * from table_name
中的50,000行,2分钟似乎仍然很慢,除非行很宽,网络非常慢或者pgbench由于RAM限制而处于交换/分页风暴中。
请注意,pgbench将整个结果集(对于任何给定查询)读入内存,因此对于非常大的结果集可能会遇到内存问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。