ITPub博客

首页 > 数据库 > MySQL > MYSQL 优化注意事项

MYSQL 优化注意事项

原创 MySQL 作者:wwjfeng 时间:2026-02-04 22:39:58 0 删除 编辑

一.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


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/15412087/viewspace-3109966/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: mysqltuner
请登录后发表评论 登录
全部评论

注册时间:2010-03-27

  • 博文量
    57
  • 访问量
    199171