101 mysql 问题处理记录
mysql 异常问题处理¶
1、 因开启log_queries_not_using_indexes=1 后会自动写入大量慢日志记录在日志文件中?
问题分析¶
log_queries_not_using_indexes=1 的主要用途是启用 MySQL 记录那些未使用索引的查询到慢查询日志中,即使查询执行时间未超过慢查询时间阈值(long_query_time)
- 记录未使用索引的查询:当该参数设置为1时,MySQL 会将所有未利用索引的 SQL 语句(如全表扫描查询)写入慢日志文件,无论其执行时间长短。
- 优化性能辅助:通过分析这些日志,数据库管理员可以快速发现缺乏索引的查询,从而针对性地添加索引、避免全表扫描,提升查询效率和系统性能。
- 与其他参数协同:该设置需结合 slow_query_log=1(开启慢日志)和 long_query_time(定义慢查询时间阈值)使用;例如,log_queries_not_using_indexes=1 独立于时间阈值记录查询
解决方案¶
- 如果目的是解决生产大量日志,导致磁盘占用高问题,可关闭参数log_queries_not_using_indexes=0,便不会继续产出大量日志
- 如果以优化sql 为目的,按需联系对应DBA,加索引优化性能。