参数部分
数据库参数是数据库系统运行的关键配置信息,设置不合适的参数值可能会影响业务。
- 修改敏感参数,不当设置会导致信息泄露。例如参数 log_statement,可能会在日志输出中带有敏感信息,若无必要可以设置为none。
- 性能参数,不当设置会导致无意义的数据库空转或者阻塞,导致读写性能下降。例如参数autovacuum,频率过高会导致占用时间过长,降低实例性能,而频率过低可能会引起清理速度赶不上读写速度,最终导致xid回卷。
数据库重复操作开销
- 使用连接池。过多的数据库连接会占用宝贵的内存资源,反复创建与销毁连接会增大切换的开销。因而在不影响实际应用的情况下,降低连接数量有利于系统性能优化。业务系统在不影响的情况下,应尽量使用连接池,避免反复创建过多连接,使数据库负荷过重。
- 使用较大的事务批量处理数据。在不要求分段确认且成功率高的场景下,业务系统应将适当数量的语句放在一个事务内执行,减少反复提交事务的开销。一般的关系型数据库进行事务回滚会有较大时间开销,但关系数据库PostgreSQL版的特性即是回滚时间与事务大小无关,因而事务语句数量阈值相较于其他数据库可以更大一些。