postgre慢查询实践

一、配置

检查慢查询开关是否打开

–查询慢查询开关状态

show logging_collector;

–打开慢查询开关,需要重启PG

alter system set logging_collector=‘on’;

查看慢查询日志信息

–查询日志目录

show log_directory;

–查询日志文件名

show log_filename;

–查询日志输出方式

show log_destination;

查看慢查询时间阀值

–查询慢SQL时间阀值(-1表示不匹配)

show log_min_duration_statement;

–设置慢SQL时间阀值,即记录执行超过10ms的语句

set log_min_duration_statement=10;(单位ms)

其它配置

–none(默认), ddl, mod, all,跟踪所有语句时可设置为 “all”,此时log_min_duration_statement配置值失效

show log_statement;

–minute,多长时间创建新的文件记录日志。0 表示禁扩展

show log_rotation_age;

–kb,文件多大后创建新的文件记录日志。0 表示禁扩展

show log_rotation_size;

–可重用同名日志文件

show log_truncate_on_rotation;

二、分析

执行如下查询:

select now(),pg_sleep(6);

select count(*) from openans_ncc_topo_default_ltp

查看日志文件:

SHOW data_directory;


postgre慢查询实践


如图,针对慢查询的SQL已经记录


postgre慢查询实践


三、实践

索引设计原则 :

  1. 代码先行,索引后上
  2. 联合索引尽量覆盖条件
  3. 不要在区分度小的字段上建立索引
  4. 长字符串可以使用前缀索引
  5. where和order by 索引冲突时,优先照顾where条件
  6. 基于慢查询SQL进行优化
发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章