mysql优化

我预见了未来,那里面没有你

慢查询

  • 查看慢查询日志是否开启:show variables like ‘slow_query_log’;
  • 如果没有开启:则设置set global log_queries_not_using_indexes=on;
  • 查询记录慢查询时间:show variables like ‘long_query_time’;
  • 设置慢查询记录时间:set global long_query_time=2;
  • 开启慢查询:set global slow_query_log=on;
  • 查看慢查询的日志位置:show variables like ‘slow%’;

数据库监控

  • QPS
  • TPS
  • 并发数 Threads_running
  • 主从复制
  • 对服务器资源,磁盘空间
  • read_only参数
  • 最大连接数 max_connections
  • 当前连接数 Threads_connected

centos 系统参数优化

内核相关参数 /etc/sysctl.conf

  • net.core.somaxconn = 65535
  • net.core.netdev_max_backlog = 65535
  • net.ipv4.tcp_max_syn_backlog = 65535
  • net.ipv4.tcp_fin_timeout = 10
  • net.ipv4.tcp_tw_reuse = 1
  • net.ipv4.tcp_tw_recycle = 1
  • 内存相关
  • kernel.shmmax = 42955555 这个参数应该设置的足够大,以便能在一个共享内存段下容纳整个的Innodb缓冲池的大小
  • 增加资源限制 /etc/security/limit.conf 打开文件的限制
  • 磁盘调度策略 /sys/block/devname/queue/scheduler