Mysql服务优化
- 硬件层面优化
- 操作系统层面优化
- Mysql数据库层面优化
- 网站集群架构层面优化
- 安全优化
- 流程、制度控制优化
- CPU 64CPU,至少2-4颗cpu,L2越大越好
- MEMORY 96-128G跑3-4个实例;32-64,跑1-2个实例
- DISK SAS机械盘,数量越多越好
- RAID RAID0> RAID10(推荐)> RAID5(少用)
- NETWORK 多网卡bond,buffer,tcp优化
- 数据库服务器数据IO密集型服务,尽量不要使用虚拟化
- 一定选择x86_64位系统,推荐使用CentOS6.8,关闭NUMA特性
- 将操作系统喝数据分区分开
- 避免使用swap交换分区
- 避免使用软件磁盘阵列
- 避免使用LVM逻辑卷
- 删除服务器上未使用的安装包和守护进程
- 调整磁盘Cache mode
- 启用WCE=1(write cache Enable)RCD=0(Read cache Disable)模式 命令:sdparm -s WCE=1,RCD=0 -S /dev/sdb
- 采用Linux I/O scheuler算法deadline
- 采用deadline I/O调度起
- deadline调度参数,对于Centos 建议:
- 业务量很大建议采用xfs文件系统,业务量不是很大可采用ext4
- mount挂载文件系统增加:async、noatime、nodiratime、nobarrier(不使用raid卡电池)等选项
- 将vm.swappiness设置为0.10
- 将vm.dirty_background_ratio设置为5-10,将vm.dirty_ratio设置为它的两倍左右,以确保能持续将脏数据刷新到磁盘,避免瞬间I/O写入,产生严重等待
- 优化tcp协议栈,
- 减少TIME_WAIT,提高tcp效率
- 减少处于FIN0Await-2连接状态等时间,是系统可以处理更多的连接
- 减少TCP KeepAlive连接侦测时间,是系统可以处理更多的连接
- 提高系统支持的最大SYN半连接数(默认1024)
- 减少系统SYN连接重试次数(默认5)
- 优化系统套接字缓冲区
- 优化TCP接受/发送缓冲区
- 优化网络设备接收队列
- 其他优化
- 如果使用MyISAM引擎,需要key_buffer_size调大
- 建议设置default-storage-engine=InnoDB,强烈建议不要再使用MyISAM引擎。
- 调整innodb_buffer_pool_size的大小,如果是单实例且绝大多数是InnoDB引擎表的话,可考虑设置为物理内存的50% -70%左右。
- 设置innodb_file_per_table = 1,使用独立表空间。
- 调整innodb_data_file_path = ibdata1:1G:autoextend,不要用默认的10M,在高并发场景下,性能会有很大提升。
- 设置innodb_log_file_size=256M,设置innodb_log_files_in_group=2,基本可以满足大多数应用场景。
- 调整max_connection(最大连接数)、max_connection_error(最大错误数)设置,根据业务量大小进行设置。
- 另外,open_files_limit、innodb_open_files、table_open_cache、table_definition_cache可以设置大约为max_connection的10倍左右大小。
- key_buffer_size建议调小,32M左右即可
- 建议关闭query cache功能或降低设置不要超过512M(前端使用redis或memcached)
- mp_table_size、max_heap_table_size、sort_buffer_size、join_buffer_size、read_buffer_size、read_rnd_buffer_size等设置也不要过大。
- 白名单机制-百度,项目开发,DAB参与,减少上线后的慢sql数量
- 抓出慢sql:配置my.cnf
- 定时分析慢查询,发到核心开封,DBA分析及高级韵味,CTO邮箱
- 定期使用pt-duplicate-key-checker检查并删除重复的索引
- 定期使用pt-index-usage工具检查并删除使用频率低低索引
- 使用pt-online-schema-change来完成达标的online ddl需求
- 搜索功能:like %baidu%,一般不要用Mysql数据主库
- 避免在整表上使用count(*),他有可能导致锁表
- 使用连接join来代替子查询
- 多表连接查询时,把结果集笑的表作为驱动表
- 多表连接并且有排序时,排序字段必须时驱动表例的,否则排序列无法用到索引
- 使用explain及set profile优化sql语句
- 慢查询sql语句方法(紧急处理)
- 记录并分析慢查询日志(日常处理)
- explain语句检查索引执行情况
- 服务器上跑多实例,2-4个
- 主从复制一主五从,采用mixed模式,尽量不要夸机房同步(尽量远程写本地读)
- 定期pt-table-checksum、pt-table-sync来检查并修复mysql主从复制的数据差异
- 业务拆分:搜索功能一般不要用Mysql数据库,某些业务应用应使用nosql持久化存储,如memcached、redis、ttserver等
- 数据库前端必须加cache
- 动态的数据静态化(整个文件静态化,而非文件中的片段静态化)
- 数据库集群与读写分离。
- 选择从库进行备份
- 对数据库进行分库分表备份
Mysql服务优化的更多相关文章
- MySQL服务优化参数设置参考
l 通用类: key_buffer_size 含义:用于索引块的缓冲区大小,增加它可得到更好处理的索引(对所有读和多重写). 影响:对于MyISAM表的影响不是很大,MyISAM会使用系统的缓存来存储 ...
- mysql学习(2)-MySQL服务器优化
调优思路: 1.数据库设计与规划--以后再修该很麻烦,估计数据量,使用什么存储引擎 2.数据的应用--怎样取数据,sql语句的优化 3.mysql服务优化--内存的使用,磁盘的使用 4.操作系统的优化 ...
- Mysql服务配置优化
mysql服务器优化包含 硬件优化.操作系统配置优化(cpu调度.网络.内存.虚拟内存.磁盘io).Mysql服务配置优化(最大连接数.表缓存等.存储引擎).表结构优化.索引优化 总共5个方面. 本片 ...
- Mysql性能优化三(分表、增量备份、还原)
接上篇Mysql性能优化二 对表进行水平划分 如果一个表的记录数太多了,比如上千万条,而且需要经常检索,那么我们就有必要化整为零了.如果我拆成100个表,那么每个表只有10万条记录.当然这需要数据在逻 ...
- mysql 性能优化方向
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...
- MySQL性能优化总结
一.MySQL的主要适用场景 1.Web网站系统 2.日志记录系统 3.数据仓库系统 4.嵌入式系统 二.MySQL架构图: 三.MySQL存储引擎概述 1)MyISAM存储引擎 MyISAM存储引擎 ...
- MYSQL性能优化的最佳20+条经验
MYSQL性能优化的最佳20+条经验 2009年11月27日 陈皓 评论 148 条评论 131,702 人阅读 今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数 ...
- mysql 性能优化方案
网 上有不少MySQL 性能优化方案,不过,mysql的优化同sql server相比,更为麻烦与复杂,同样的设置,在不同的环境下 ,由于内存,访问量,读写频率,数据差异等等情况,可能会出现不同的结果 ...
- mysql 性能优化方案1
网 上有不少mysql 性能优化方案,不过,mysql的优化同sql server相比,更为麻烦与复杂,同样的设置,在不同的环境下 ,由于内存,访问量,读写频率,数据差异等等情况,可能会出现不同的结果 ...
随机推荐
- CSS 绝对定位与弹性布局合作居中
position: absolute; display:flex; justify-content:center;align-items:center;
- 初入码田--ASP.NET MVC4 Web应用开发之一 实现简单的登录
初入码田--ASP.NET MVC4 Web应用之创建一个空白的MVC应用程序 初入码田--ASP.NET MVC4 Web应用开发之二 实现简单的增删改查 2016-07-24 一.创建T4模板,建 ...
- [cdqzds] Challenge4
描述 给一个长为N的数列,有M次操作,每次操作时以下三种之一: (1)修改数列中的一个数 (2)求数列中某连续一段所有数的两两乘积的和 mod 1000000007 (3)求数列中某连续一段所有相邻两 ...
- QML——添加自定义模块
一.模块的定义 在使用QML时,我们常常看到类似这样的语句: import QtQuick 2.0 import QtSensors 5.0 通过这些import语句,我们就能使用QML中的相关控件了 ...
- vyos 基础配置
vyos 基础配置 http://www.lowefamily.com.au/2015/11/29/using-a-vyos-router-with-hyper-v/1/http://thomasvo ...
- c++11 函数模板的默认模板参数
c++11 函数模板的默认模板参数 #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <string> ...
- xsl 文件如何定义 Javascript 函数并且调用
<?xml version='1.0'?><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3. ...
- 【BZOJ2830/洛谷3830】随机树(动态规划)
[BZOJ2830/洛谷3830]随机树(动态规划) 题面 洛谷 题解 先考虑第一问. 第一问的答案显然就是所有情况下所有点的深度的平均数. 考虑新加入的两个点,一定会删去某个叶子,然后新加入两个深度 ...
- 用Python实现的数据结构与算法:快速排序
一.概述 快速排序(quick sort)是一种分治排序算法.该算法首先 选取 一个划分元素(partition element,有时又称为pivot):接着重排列表将其 划分 为三个部分:left( ...
- opencv 应用程序无法正常启动(0xooooo7b)
#include<iostream> #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui ...