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相比,更为麻烦与复杂,同样的设置,在不同的环境下 ,由于内存,访问量,读写频率,数据差异等等情况,可能会出现不同的结果 ...
随机推荐
- ACM数论之旅1---素数(万事开头难(>_<))
前言:好多学ACM的人都在问我数论的知识(其实我本人分不清数学和数论有什么区别,反正以后有关数学的知识我都扔进数论分类里面好了) 于是我就准备写一个长篇集,把我知道的数论知识和ACM模板都发上来(而且 ...
- MT【121】耐克数列的估计
已知$\{a_n\}$满足$a_1=1,a_2=2,\dfrac{a_{n+2}}{a_n}=\dfrac{a_{n+1}^2+1}{a_n^2+1}$, 求$[a_{2017}]$_____ 解:容 ...
- [HDU4787]GRE Words Revenge 解题报告
这是我之前博客里提到的一道AC自动机的练手题,但是要完成这道题,我之前博客里提到的东西还不够,这里总结一下这道题. 这道题不是一般的裸的AC自动机,它的询问和插入是交叉出现的所以用我之前写的板子不大合 ...
- 【BZOJ1835】基站选址(线段树)
[BZOJ1835]基站选址(线段树) 题面 BZOJ 题解 考虑一个比较暴力的\(dp\) 设\(f[i][j]\)表示建了\(i\)个基站,最后一个的位置是\(j\)的最小代价 考虑如何转移\(f ...
- 【BZOJ4006】【JLOI2015】管道连接
Description 传送门 Solution 题目要求相同颜色的点必须在一个连通块中,但会有多个颜色同属一个连通块使得解更优的情况. 想一想DP能否行得通:设\(g_i\)表示已考虑颜色状态为\( ...
- BZOJ1443 [JSOI2009]游戏Game 【博弈论 + 二分图匹配】
题目链接 BZOJ1443 题解 既然是网格图,便可以二分染色 二分染色后发现,游戏路径是黑白交错的 让人想到匹配时的增广路 后手要赢[指移动的后手],必须在一个与起点同色的地方终止 容易想到完全匹配 ...
- 【poj3016】 K-Monotonic
http://poj.org/problem?id=3016 (题目链接) 题意 给出一个数列,将一个数${a_i}$更改为${b_i}$的代价为${|a_i-b_i|}$.求将数列改为不递减的最小代 ...
- bzoj4427【Nwerc2015】Cleaning Pipes清理管道
题目描述 Linköping有一个相当复杂的水资源运输系统.在Linköping周围的出水点有一些水井.这些水通过管道输送到其它地点.每条管道是从某一个水井到城市的某个位置的直线管道. 所有管道在地下 ...
- 2:spring中的@resource
@Resource 其实是spring里面的注解注入. @Resource(这个注解属于J2EE的),默认安照名称进行装配,名称可以通过name属性进行指定, 如果没有指定name属性,当注解写在字段 ...
- NIN (Network In Network)
Network In Network 论文Network In Network(Min Lin, ICLR2014). 传统CNN使用的线性滤波器是一种广义线性模型(Generalized linea ...