Postgresql Postgres 9.4.12慢速查询

Postgresql Postgres 9.4.12慢速查询,postgresql,performance,postgresql-9.4,Postgresql,Performance,Postgresql 9.4,在一个有900万行的表中,我的postgres查询速度很慢 查询:EXPLAIN(ANALYZE,BUFFERS)选择日期点、地理位置、报警、跟踪主机状态,其中id\u asset=151和date\u point>='2017-07-21 19:20:05'和日期点排序(cost=161175.31..161175.32行=1宽度=579)(实际时间=60734.107..60734.110行=5圈=1) 排序键:日期\点 排序方法:快速排序内存:27kB 缓冲区:共享命中=23470读取=1

在一个有900万行的表中,我的postgres查询速度很慢

查询:
EXPLAIN(ANALYZE,BUFFERS)选择日期点、地理位置、报警、跟踪主机状态,其中id\u asset=151和date\u point>='2017-07-21 19:20:05'和日期点排序(cost=161175.31..161175.32行=1宽度=579)(实际时间=60734.107..60734.110行=5圈=1)
排序键:日期\点
排序方法:快速排序内存:27kB
缓冲区:共享命中=23470读取=114350
->使用跟踪主机上的idx\U跟踪主机\U id\U资产进行索引扫描(成本=0.43..161175.30行=1宽度=579)(实际时间=80.682..60734.081行=5个循环=1)
索引条件:(id_资产=151)

筛选器:((date\u point>='2017-07-21 19:20:05-03'::带时区的时间戳)和(date\u point)如果没有查询,很难帮助您。您的where子句中似乎有类似的内容:

    id_asset=151 
AND (date_point >= '2017-07-21 19:20:05-03') 
AND (date_point <= '2017-07-21 19:25:05-03')

(提示:创建索引后使用真空分析)

您试图优化的查询是什么?表是如何定义的?索引?我们需要更多的信息来了解可以改进的地方(如果有的话)。这显然是正确的答案,只需两句话:1)为什么索引上有
DESC
良好的统计数据总是必要的,但除非您在表达式上创建索引,否则不必分析
。.1,为什么是ASC?:)根据用例的不同,它们可能同样好。我们不知道的。2、ANALYZE强制DBMS更新统计数据(根据文档)。我也从习惯上分析真空。它不疼。“它不疼”取决于你的系统负载。谢谢你的回答!你说得对。我通常在负载较低或有人要求我这样做时使用。
    id_asset=151 
AND (date_point >= '2017-07-21 19:20:05-03') 
AND (date_point <= '2017-07-21 19:25:05-03')
CREATE INDEX multicol_index ON tracking_master (id_asset, date_point DESC);