explain (analyze,verbose,costs,buffers,timing) select * from xxxx;
explain参数解释:
ANALYZE :执行命令并显示执行事件,默认false
VERBOSE :对执行计划提供额外的信息,如查询字段信息等,默认false
COSTS :显示执行计划的,默认true
BUFFERS :默认false,前置条件是analyze
FORMAT :默认格式是text
PostgreSQL的cost常量如下 :
seq_page_cost -- 连续块扫描操作的单个块的cost. 例如全表扫描
random_page_cost -- 随机块扫描操作的单个块的cost. 例如索引扫描
cpu_tuple_cost -- 处理每条记录的CPU开销
cpu_index_tuple_cost -- 扫描每个索引条目带来的CPU开销
cpu_operator_cost -- 操作符或函数带来的CPU开销.(需要注意函数以及操作符对应的函数的三态, 执行计划会根据三态做优化, 关系到多条记录时三态对应的调用次数是需要关心的)
explain参数解释:
ANALYZE :执行命令并显示执行事件,默认false
VERBOSE :对执行计划提供额外的信息,如查询字段信息等,默认false
COSTS :显示执行计划的,默认true
BUFFERS :默认false,前置条件是analyze
FORMAT :默认格式是text
PostgreSQL的cost常量如下 :
seq_page_cost -- 连续块扫描操作的单个块的cost. 例如全表扫描
random_page_cost -- 随机块扫描操作的单个块的cost. 例如索引扫描
cpu_tuple_cost -- 处理每条记录的CPU开销
cpu_index_tuple_cost -- 扫描每个索引条目带来的CPU开销
cpu_operator_cost -- 操作符或函数带来的CPU开销.(需要注意函数以及操作符对应的函数的三态, 执行计划会根据三态做优化, 关系到多条记录时三态对应的调用次数是需要关心的)