处理Ubuntu MariaDB慢查询可从配置、优化、监控三方面入手,具体如下:
启用慢查询日志
/etc/mysql/mariadb.conf.d/50-server.cnf,添加以下参数:slow_query_log = 1
long_query_time = 2 # 设置慢查询阈值(单位:秒)
slow_query_log_file = /var/log/mysql/mariadb-slow.log # 日志文件路径
log_output = 'FILE,TABLE' # 同时输出到文件和数据库表
sudo systemctl restart mariadb。分析慢查询日志
pt-query-digest(Percona工具包):分析日志并生成报告,指出慢查询的SQL语句及优化建议。mysqldumpslow:按执行频率或时间排序慢查询,辅助定位问题。SHOW PROCESSLIST命令查看当前慢查询的实时状态。优化SQL与索引
EXPLAIN分析查询执行计划,检查是否存在全表扫描、索引缺失等问题。SELECT *,使用LIMIT分页,简化JOIN逻辑。调整数据库配置
innodb_buffer_pool_size设为系统内存的50%-80%),提升数据缓存效率。query_cache_size),适用于读多写少的场景。硬件与系统优化
vm.swappiness),优化系统资源分配。定期维护
OPTIMIZE TABLE整理表碎片,提升查询效率。通过以上步骤,可有效识别并解决MariaDB中的慢查询问题,提升数据库性能。