MYSQL 优化注意事项

来源:这里教程网 时间:2026-03-01 18:34:49 作者:

一.OS层面优化 1.swap vm.swappiness = 10 内存使用率 90% 时才会使用swap vm.min_free_kbytes OS保留内存 vm.vfs_cache_pressure控制内核回收文件系统缓存的积极程度 2.大内存页 vm.nr_hugepages 大内存页数 ORACLE SGA MYSQL INNODB_BUFFER vm.hugetlb_shm_group = 666 哪个组id使用大内存页 3.禁止操作系统更新文件的atime属性 /etc/fstab指定属性default->noatime 然后重新挂载。 4.IO调度算法 数据库环境选择deadline。其他SSD环境选择noop vi /etc/default/grub GRUB_CMD LINE_LINUX="elevator=deadline" grub2-mkconfig -o /etc/grub2.cfg cat /sys/block/sf/queue/scheduler 5.关闭NUMA vi /etc/default/grub GRUB_CMD LINE_LINUX="numa=off" grub2-mkconfig -o /etc/grub2.cfg 6.CPU优化检查CPU是否开启了节能优化 grep - E 'model name'cpu MHz' /proc/cpuinfo 确认当前主频和标地主频是否一样。不一样就是开启了节能模式 二、数据库层面优化指标 1.千万级/亿级表如何优化 (1).优化SQL (2).前端加缓存memcached,redis (3).读写分离 (4).表分区 (5).分表分库-垂直拆分 (6).分表分库-水平拆分 2.慢查询 slow_query_log=ON slow_query_log_file long_query_time=10 log_queries_not_using_indexes=1 --记录没有使用INDEX的语句 min_examined_row_limit=1000 --记录执行大于1000次的慢查询 log_slow_admin_statements=1 log_slow_slave_statements=1 3.连接数 max_connections max_used_connections 4.table open情况 参数table_open_cache: MYSQL服务可缓存打开表描述符的数量,减少频繁开关表的开销 关联参数open_tables/open_tables>=85% 5.thread_cache_size MySQL服务缓存的空间线程数量 show global status like 'Thread'; threads_created 累计创建的线程数 threads_cached 当前缓存的空间线程数 6.文件打开数 open_files 当前打开文件数 open_files_limit 限制参数 7.表锁情况 show global status like 'table_locks'; 8.表扫描情况 show global status like 'handler_read'; show global status like 'com_select'; 表扫描率 = handler_read_rnd_next / com_select 过高则需要优化索引 9.计算QPS show global status like '%Question%'; show global status like '%uptime%'; QPS=Question/uptime

相关推荐