一、配置
- 检查慢查询开关是否打开
–查询慢查询开关状态
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;
如图,针对慢查询的SQL已经记录
三、实践
索引设计原则 :
- 代码先行,索引后上
- 联合索引尽量覆盖条件
- 不要在区分度小的字段上建立索引
- 长字符串可以使用前缀索引
- where和order by 索引冲突时,优先照顾where条件
- 基于慢查询SQL进行优化