标签:机器 简洁 登录 导致 proc sql语句 核心 my.cnf 集群
1.硬件优化 a.cpu 一台机器8-16颗8-16G 2-4颗
b.内存 96G-128G 3-4个实例 32-64G 跑2个实例
c.disk数量越多越好,性能:ssd (高并发)> sas(普通业务线上) >sata
raid10>raid5>raid1
d.网卡,多块网卡bond,以及buffer,tcp优化
2.参数优化
优化的幅度很小,大部分 架构以及SQL语句优化
监控 生产参数时一般情况下参数
show global status\G
工具 mysqlreport
3.sql优化
a.索引的优化
1)抓出慢SQL,配置my.cnf
long_query_time = 1
log-slow-queries = /data/3306/slow.log
按天轮询slow-log.log
2)慢查询日志分析工具--mysqlsla(推荐)
b.大的复杂的SQL语句拆分成多个小的SQL语句
c.数据库是存储数据的地方,但不是计算数据的地方
d.搜索功能,一般不用MYSQL数据库
4.架构优化
1.业务拆分,搜索功能,like ‘%全职%’,一般不要用数据库
2.数据库前端使用nosql持久化存储
3.数据库集群与读写分离,一主多从,通过程序进行读写分离
4.单表超过2000万,拆库拆表
5.动态数据静态化。
流程、制度、安全优化
如何一次人为数据库记录的更新,都要走一个流程
a.人的流程 开发--->核心开发--->运维或DBA
网站打开慢
1)show full processlist:
2)慢查询语句
long_query_time = 1
log-slow-queries = /data/3306/slow.log
a、数据库负载高,有慢查询,做联合索引案例,查看表结构,有没有建索引
b、带宽满了,磁盘满了,连接数消耗完了
c、数据库中像 Like’%×××%’ 这样的语句特别多,导致数据库负载高,这样的语句对于数据库没有太大的优化余地
登录数据库查看 show full processlist:
mysql -uroot -p’111’ -e “show full processlist” | grep -vi sleep 数据库中像 Like’%×××%’ 这样的语句特别多,导致数据库负载高,这样的语句对于数据库没有太大的优化余地
优化方法
1)业务上实现先登录再搜索,减少搜索次数
2) 分析web日志的ip,如果有大量频繁的搜索,一般是爬虫在爬你的网站(Awstats是一个免费非常简洁而且强大有个性的统计工具)
3) 配置多个从库,程序上实现读写分离
4) 在数据库前端加上缓存服务器
tips
mysqldump大于50g就用xtarbackup
mysqlbinlog -d aaa mysql-bin.0020 > aaa.sql (生成的sql都是aaa库的)
标签:机器 简洁 登录 导致 proc sql语句 核心 my.cnf 集群
原文地址:http://blog.51cto.com/12473494/2316541