在调查 Postgres 日志中的一个条目时,我注意到报告的持续时间和查询速度之间存在很大差异。
2015-07-28 17:27:26 UTC [dms_segment_3] LOG: duration: 2924.763 ms bind <unnamed>: SELECT prospect.id AS prospect_id, 0, am.id, am.customer_id, 0 FROM xxxxx.audience_member am LEFT OUTER JOIN xxxxx.campaign campaign ON campaign.id = $1 LEFT OUTER JOIN xxxxx.end_user prospect ON campaign.id=prospect.campaign_id AND prospect.email_id=am.customer_id AND prospect.end_user_type != 1 WHERE am.audience_id = $2 ORDER BY am.id limit $3
2015-07-28 17:27:26 UTC [dms_segment_3] DETAIL: parameters: $1 = '4000013578869', $2 = '4000013744916', $3 = '500'
Run Code Online (Sandbox Code Playgroud)
在该查询上运行解释会产生更快的速度:
explain analyze
SELECT prospect.id AS prospect_id
, 0, am.id, …
Run Code Online (Sandbox Code Playgroud)