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数论之旅5---数论四大定理(你怕不怕(☆゚∀゚)老实告诉我)
(本篇无证明,想要证明的去找度娘)o(*≧▽≦)ツ ----------数论四大定理--------- 数论四大定理: 1.威尔逊定理 2.欧拉定理 3.孙子定理(中国剩余定理) 4.费马小定理 (提 ...
- Python fullstack系列【1】:初识Python
Python简介 Python的前世今生: Python诞生于1989年的圣诞节期间,其作者是吉多·范罗苏姆(Guido van Rossum).当时Guido(江湖人称龟叔)在阿姆斯特丹度假时着手开 ...
- echarts 地图 离线json包分享
最近,项目中需要用到地图,由于项目的特殊性,只能使用内网获取数据. 然而,echarts官网上的离线地图包(http://echarts.baidu.com/download-map.html)早在一 ...
- [Offer收割]编程练习赛23-freeloop
A. H国的身份证号码I dfs裸题. 时间复杂度\(O(n^k)\). #include <bits/stdc++.h> #define FOR(i,a,b) for (int i=a; ...
- BZOJ5125 小Q的书架(决策单调性+动态规划+分治+树状数组)
设f[i][j]为前i个划成j段的最小代价,枚举上个划分点转移.容易想到这个dp有决策单调性,感性证明一下比较显然.如果用单调栈维护决策就不太能快速的求出逆序对个数了,改为使用分治,移动端点时树状数组 ...
- P4433 [COCI2009-2010#1] ALADIN
题目描述 给你 n 个盒子,有 q 个操作,操作有两种: 第一种操作输入格式为"1 L R A B",表示将编号为L到R的盒子里的石头数量变为(X−L+1)×A mod B,其中 ...
- Scrapy初尝试
,python3.6版本 在看网上的安装的时候下一堆依赖,其实没有必要一个个的去装,pip直接分析依赖一块下载安装下来! 已经安装了pip模块 直接上 pip install scrapy 安装twi ...
- BZOJ 2746: [HEOI2012]旅行问题
2746: [HEOI2012]旅行问题 Time Limit: 30 Sec Memory Limit: 256 MBSubmit: 921 Solved: 291[Submit][Status ...
- 洛谷 P4301 [CQOI2013]新Nim游戏 解题报告
P4301 [CQOI2013]新Nim游戏 题目描述 传统的Nim游戏是这样的:有一些火柴堆,每堆都有若干根火柴(不同堆的火柴数量可以不同).两个游戏者轮流操作,每次可以选一个火柴堆拿走若干根火柴. ...
- 洛谷P3994 Highway(树形DP+斜率优化+可持久化线段树/二分)
有点类似NOI2014购票 首先有方程$f(i)=min\{f(j)+(dep_i-dep_j)*p_i+q_i\}$ 这个显然是可以斜率优化的... $\frac {f(j)-f(k)}{dep_j ...