mysql优化 运维_mysql优化

mysql数据库优化

1.硬件优化

a.64位cpu 一台机器8-16颗cpu,(其他)2-4颗

b.内存  96-128g 3-4个实例(百度),(其他)32-64,2个实例

c.硬盘,数量越多越好,性能:ssd(高并发)>sas(普通线  上)>sata(线下)

raid  4块盘:RAID0>RAID10>RAID5>RAID1

d.网卡 多块网卡bond,以及buffer,tcp优化

2.软件优化

操作系统:64位

软件:mysql 编译优化

3.参数优化(my.cnf)

my.cnf优化的幅度很小,大部分是架构和sql语句的调优

innodb_buffer_pool_size=2048m物理内存的30%-50%

sort_buffer_size=2m 线程buffer,不能给太大

tmp_table_size=256m 临时表

long_query_time=2 slow_log,超过两秒的

skip-name-resolve 不加会遇到权限问题

思想:

监控:show global status\G查看命中率

调优工具:mysqlreport

4.sql语句的优化

a.索引优化

抓出慢sql,配置my.cnf(大于2s的,没走索引的记录下来)

long-slow-query=/data/3306/slow-log.log

慢查询日志分析工具:mysqldumpslow,mysqlsla,myprofi

按天轮询:slow-log.log

b.每天晚上0点定时分析慢查询,发到核心开发,DBA的邮箱

c.大的复杂的sql语句拆分成多个小的sql语句

子查询,JOIN链表查询,某个表4000万条记录

d.数据库是存储数据的地方,但不是计算的地方,拿到前端应用解决

e.搜索功能,LIKE'%老男孩%'一般不要用mysql数据库

5.架构优化

1.业务拆分

2.数据库前端加cache,例如:memcache(用户登录,商品查询等等)

3.某些业务应用使用nosql持久化存储,例如:memcachedb,redis(粉丝,关注,好友关系等等)

4.动态的数据静态化。整个文件静态化,页面片段静态化

5.数据库集群与读写分离。一主多从。通过程序或者dbproxy进行集群读写分离

6.单表超过2000万。拆库拆表

6.流程,制度,安全优化

任何一次人为数据库记录的更新,都要走一个流程:

a.人的流程:开发-->核心开发-->运维或DBA(确认)

b.测试流程:内网测试-->IDC测试-->线上执行

c.客户端管理,phpmyadmin

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值