SQL数据库日志分为错误日志、慢查询日志和审计日志三类:错误日志记录启动、崩溃等服务级异常;慢查询日志捕获超时SQL用于性能分析;审计日志追踪敏感操作以满足合规要求。

SQL数据库的日志体系是保障系统稳定、安全和可追溯的核心机制,主要分为三类:错误日志、慢查询日志和审计日志。它们各自承担不同职责,协同支撑故障排查、性能优化与合规管控。
错误日志:定位运行异常的“第一现场”
错误日志记录数据库启动、关闭、崩溃及运行中发生的严重问题(如连接失败、权限拒绝、表损坏、内存不足等)。它不记录SQL语句本身,而是聚焦于服务级异常。
- MySQL 默认开启,路径由 log_error 参数指定(如 /var/log/mysql/error.log);
- PostgreSQL 通过 log_destination 和 logging_collector 控制,日志文件通常在 pg_log/ 目录下;
- 建议启用日志轮转(如 MySQL 的 log_error_services + rotate,或用 logrotate 工具),避免单文件过大影响分析;
- 关键操作前(如升级、大表DDL)应检查错误日志是否清空、无持续报错。
慢查询日志:发现性能瓶颈的“显微镜”
该日志捕获执行时间超过阈值的SQL语句,是性能调优最直接的数据来源。注意它只记录“慢”,不区分成功或失败。
iWebShop是一款基于PHP语言及MYSQL数据库开发的B2B2C多用户开源免费的商城系统,系统支持自营和多商家入驻、集成微信商城、手机商城、移动端APP商城、三级分销、视频电商直播、微信小程序等于一体,它可以承载大数据量且性能优良,还可以跨平台,界面美观功能丰富是电商建站首选源码。iWebShop开源商城系统 v5.14 更新日志:新增商品编辑页面规格图片上传优化商品详情页面规格图片与主图切
- MySQL 中由 slow_query_log 开启,long_query_time 设定阈值(支持微秒级,如 0.1 表示100ms);
- 建议同时开启 log_queries_not_using_indexes(对未走索引的查询告警,但生产慎用,可能日志爆炸);
- PostgreSQL 使用 log_min_duration_statement(单位毫秒),配合 log_statement = 'none' 避免全SQL记录;
- 定期用 mysqldumpslow 或 pt-query-digest 分析,重点关注 Rows_examined / Rows_sent 比值过高 的语句。
审计日志:满足安全与合规要求的“记账本”
审计日志记录用户连接、权限变更、数据增删改、结构变更等敏感行为,目标是“谁、何时、做了什么”,常用于等保、GDPR、金融监管等场景。
- MySQL 官方企业版提供 Audit Plugin,社区版需依赖第三方(如 MariaDB 的 server_audit 插件或 Percona Toolkit);
- PostgreSQL 原生不带完整审计功能,可通过 pgaudit 扩展实现细粒度控制(如按用户、schema、操作类型过滤);
- 审计日志必须独立存储、防篡改,建议写入远程syslog或专用日志平台(如ELK),并设置访问权限仅限安全团队;
- 避免全量记录所有SELECT——按需开启高风险操作审计(如对用户表、资金表的读写),平衡安全与性能开销。
三类日志不是互斥而是互补:错误日志告诉你“系统出问题了”,慢日志告诉你“哪条SQL拖慢了服务”,审计日志告诉你“谁动了关键数据”。合理配置、定期巡检、分级保存,才能让日志真正成为数据库的“数字脉搏”。









