服务端阅读 05月30日 19:40
MariaDB 性能调优应该先看慢查询还是参数?
MariaDB 性能调优不要一上来就改几十个参数。更可靠的顺序是:先确认慢在哪里,再看执行计划和索引,最后才调整 InnoDB、连接数、临时表、排序缓冲等配置。参数调优像放大器,SQL 和索引方向对了,它能放大性能;方向错了,它只会把问题藏得更深。追问慢查询应该怎么打开和分析?开启 slow_query_log,把 long_query_time 设置成符合业务的阈值。再按出现频率、扫描行数、总耗时排序,不要只盯单次最慢 SQL。最关键的参数是哪个?InnoDB 场景先看 innodb_buffer_pool_size,因为它影响数据页和索引页缓存命中率。专用数据库常按内存 60%-80% 估算,但要留空间给系统和连接线程。索引优化有什么取舍?高频 WHERE、JOIN、ORDER BY 列适合联合索引,但字段不是越多越好。索引会提升读,也会拖慢写入、占用磁盘。max_connections 越大越好吗?不是。它只允许更多连接进来,不代表数据库能同时跑更多重查询。连接过多会放大线程、内存和锁竞争。sortbuffersize 和 joinbuffersize 能随便调大吗?它们通常是会话级参数,并发一高总内存会放大。只有确认瓶颈并估算过峰值连接数后,才适合小步调整。写段配置slow_query_log=1long_query_time=1innodb_buffer_pool_size=8GEXPLAIN SELECT * FROM orders WHERE user_id=1001 ORDER BY created_at DESC;CREATE INDEX idx_orders_user_created ON orders(user_id, created_at);