内容简介:http://stackoverflow.com/questions/13234812/improving-query-speed-simple-select-in-big-postgres-table
我在Postgres数据库的SELECT查询中遇到问题.
我有一个带有两个整数列的表:(int1,int2)
这张表有大约7000万行.
我需要在这种环境中进行两种简单的SELECT查询:
SELECT * FROM table WHERE int1=X; SELECT * FROM table WHERE int2=X;
这两个选择在这7000万个中返回了大约10.000行.为了尽可能快地工作,我考虑使用两个HASH索引,每列都有一个.不幸的是,结果不是那么好:
QUERY PLAN ---------------------------------------------------------------------------------------------------------------------------------------- Bitmap Heap Scan on lec_sim (cost=232.21..25054.38 rows=6565 width=36) (actual time=14.759..23339.545 rows=7871 loops=1) Recheck Cond: (lec2_id = 11782) -> Bitmap Index Scan on lec_sim_lec2_hash_ind (cost=0.00..230.56 rows=6565 width=0) (actual time=13.495..13.495 rows=7871 loops=1) Index Cond: (lec2_id = 11782) Total runtime: 23342.534 ms (5 rows)
这是其中一个查询的EXPLAIN ANALYZE示例.大概需要23秒钟我的期望是在不到一秒钟内得到这些信息.
这些是Postgres db config的一些参数:
work_mem = 128MB shared_buffers = 2GB maintenance_work_mem = 512MB fsync = off synchronous_commit = off effective_cache_size = 4GB
任何帮助,评论或想法将非常感激.
先谢谢你.
将我的意见提取到一个答案中:这里的索引查找非常快 – 所有的时间都用于检索实际的行. 23秒/ 7871行=每行2.9毫秒,这对于检索分散在磁盘子系统中的数据是合理的.寻求缓慢您可以a)将您的数据集合在RAM中,b)购买固态硬盘,或c)提前组织数据,以尽量减少寻找.
PostgreSQL 9.2有一个名为 index-only scans 的功能,允许它(通常)回答查询而不访问表.您可以将此与btree index属性组合,自动维护订单,使此查询更快.你提到int1,int2和两个浮点数:
CREATE INDEX sometable_int1_floats_key ON sometable (int1, float1, float2); CREATE INDEX sometable_int2_floats_key ON sometable (int2, float1, float2); SELECT float1,float2 FROM sometable WHERE int1=<value>; -- uses int1 index SELECT float1,float2 FROM sometable WHERE int2=<value>; -- uses int2 index
还要注意,这并不奇怪地擦除磁盘寻找,它只是从查询时间移动到插入时间.由于您正在复制数据,因此还会占用存储空间.不过,这可能是你想要的权衡.
http://stackoverflow.com/questions/13234812/improving-query-speed-simple-select-in-big-postgres-table
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 如何提高 Xcode 的编译速度
- 一个提高查找速度的小技巧
- dll预编译提高webpack打包速度
- 使用DllPlugin和DllReferencePlugin提高打包速度
- 速度提高100倍,谷歌开源张量计算库
- PSScriptAnalyzer 1.18.1 发布,速度提高 2 倍
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
社交电商
[美] Stephan Spencer(斯蒂芬.斯宾塞)、[美] Jimmy Harding(吉米.哈丁)、[美] Jennifer Sheahan(詹尼弗.希汉) / 谭磊 / 电子工业出版社 / 2015-3 / 69.00元
你想要在互联网上赚钱吗?想要做好电子商务吗?那么你一定不能忽视社交媒体的力量。不管你想要营销的是实物商品、电子类产品还是本地的服务,这本书会教你怎么做。 《社交电商》全面介绍形形色色的社交媒体以及如何利用这些社交媒体来为你的企业做好服务。如果你经营得不好,在社交媒体上散发出的只是噪声而不是真正的信息。 而如果做得好,社交媒体会成为你最有效的营销工具,帮助你赢得老客户的拥戴,获得新的客户。 ......一起来看看 《社交电商》 这本书的介绍吧!