SlideShare a Scribd company logo
如何针对业务做DB优化
吴炳锡
http://wubx.net
About ME
@吴炳锡
MySQL DBA 技能分享QQ群:373900864
中国CMUG核心组织者, MySQL布道者
10年+ 专职MySQL DBA,丰富的Support支撑能力
熟悉MySQL高可用方案
丰富的大型系统后端存储规划设计
熟悉多机房架构设计及运维
丰富的自动化平台开发及实践
http://imysql.com http://mysqlsupport.cn 2
背景
http://imysql.com http://mysqlsupport.cn 3
小张 ,你说做了DB优化,
但线上的系统还慢,好象
效果不大呀!!! +++…
大纲
• 什么时间进行优化
• DBA介入时间及角色
• 如何找到业务系统的优化点
• 线上系统压测开展
• 讨论交流
http://imysql.com http://mysqlsupport.cn 4
什么时间进行优化
http://imysql.com http://mysqlsupport.cn 5
开发总监:过早优化是万恶之源
DBA:我来的时间他们已经把程序开发完了,比较烂
我刚加入,说了他们也不听,只能任他们烂下去了!!!
猪一样的队友出现了,哈哈
开发:我们DBA太烂~~~
DBA:我们开发太挫~~~
什么时间进行优化
• 项目开始
• 学习别人怎么做,了解开始在做什么
• 举例:
• 有一个需求 用户浏览时显示已读和未读标识
http://imysql.com http://mysqlsupport.cn 6
建一个表标识出来?
哈,猪也想到了

什么时间进行优化
• BloomFilter解决的问题
• Hash Key空间问题
• 通过时间换空间,引入了多次计算
• 引入的问题
• 有可能会出现错误
http://imysql.com http://mysqlsupport.cn 7
什么时间进行优化
• 项目进行中
• 从我们DBA的角度看看还能帮助别人做什么
• 举例
• 线下布署怎么到线上规范化布署
• 通过开全量日志观查SQL中可优化点
• 早做准备,纠正开发环境中不爽的问题
• 加强测试
http://imysql.com http://mysqlsupport.cn 8
什么时间进行优化
• 项目上线
• DBA就是开发顾来的保姆,要把别人孩子养活了
• 举例
• 上线后是不是在预估的范围内
• 1个月左右的反馈开发过程
• 交维后:线上从库压力大了,你怎么办?
• 还需要开发协助吗?
http://imysql.com http://mysqlsupport.cn 9
什么时间进行优化
• 总结
• 不要报怨,弄清楚,团队当前的首要任务
• 做别人不善长的事,做好的互补人员
• 优化什么时间都可以做,关建要明白当前最重要的目标
http://imysql.com http://mysqlsupport.cn 10
大纲
• 什么时间进行优化
• DBA介入时间及角色
• 如何找到业务系统的优化点
• 线上系统压测开展
• 讨论交流
http://imysql.com http://mysqlsupport.cn 11
DBA介入时间及角色
http://imysql.com http://mysqlsupport.cn 12
时间 角色 主要职责
初期 架构师或是学习 规划项目开发中主要技术点
及实现方式
开发期 Bug或是性能提示人员 帮着开发指出低级的Bug及
协助开发人员做一些性能优
化
线上阶段 应用保姆或监护权 应用运行是不是那样,有什
么优化点,如何做…
DBA介入时间及角色
• DBA说真的是越早介入,越好。
• 但介入早的DBA一定要有业务分析能力,能分析出来业务的关建
性能瓶颈点
• 如大家觉的微博业务性能瓶颈点在哪? 平时没事多想想
http://imysql.com http://mysqlsupport.cn 13
大纲
• 什么时间进行优化
• DBA介入时间及角色
• 如何找到业务系统的优化点
• 线上系统压测开展
• 讨论交流
http://imysql.com http://mysqlsupport.cn 14
如何找到业务系统的优化点
• 找到核心目标
• 支付系统:
• 微信线下支付 VS 红包
• DB挂了,怎么办?
• 飞信
• 圣诞,元旦,春节 大压力
• 网站
• DB挂了,首页还可以显示吗?
• 抢购类业务
• DB怎么设计才能抗的住
http://imysql.com http://mysqlsupport.cn 15
如何找到业务系统的优化点
• 支付系统
• 前提:
• 线下支付不能停(
• 数据必须一致
• 分级对待(基于失败设计)
• 红包在不可用的状态下(发不出去),但不能让线下支付不能用
• 多写(业务层实现),多写一致性问题,怎么对帐较快
• 基于状态级的支付流程设计
• 假设DB不可写,在可读情况下进行支付
• 以上是怎么做到呢?
• 日常逻辑+思考
http://imysql.com http://mysqlsupport.cn 16
如何找到业务系统的优化点
• 飞信项目
• 用户可以达到,进行聊天
• 问题: 过节容易挂
• 通过高峰期抓取SQL,通过SQL采样分析DB内业务主要形态
• 针对业务优化,缓存,写合并
• 拆分,从骨干业务拆分出去
• SQL抓取
• Percona版本
• Set global long_query_time=0; select sleep(5); set global long_query_time=1;
http://imysql.com http://mysqlsupport.cn 17
如何找到业务系统的优化点
• 网站类业务
• 以前在一个做彩票类的公司,大概月流水5千万左右的交易
• DB一挂,主站也不会显示了
• 然后公司的客服电话就….
• 怎么优化呢?
http://imysql.com http://mysqlsupport.cn 18
如何找到业务系统的优化点
• 抢购类业务
• 我觉的这种业务一直是对DB的一种DDOS
• 解决方案
• 在业务前面引入接入层
• 按需要放量
• 排队进到后面
• 保持DB高效吞吐
http://imysql.com http://mysqlsupport.cn 19
如何找到业务系统的优化点
• 总结
• 找到业务核心
• 弄明白关键业务保证
• 重点保障
• 追求可用,合理的引入状态机
http://imysql.com http://mysqlsupport.cn 20
大纲
• 什么时间进行优化
• DBA介入时间及角色
• 如何找到业务系统的优化点
• 线上系统压测开展
• 讨论交流
http://imysql.com http://mysqlsupport.cn 21
开展线上系统压测
• 只有经过压测的系统才是有底的系统
• 号称的系统都是不靠谱的系统
• 压测机可以考虑购买云主机
• 在业务低峰期压测
http://imysql.com http://mysqlsupport.cn 22

More Related Content

PDF
服务器基准测试-叶金荣@CYOU-20121130
PDF
MySQL技术分享:一步到位实现mysql优化
PPTX
MySQL压力测试经验
PDF
高效Linux SA
PDF
MySQL设计、优化、运维
PDF
MySQL数据库设计、优化
PDF
MySQL运维那些事
PDF
我们的MySQL
服务器基准测试-叶金荣@CYOU-20121130
MySQL技术分享:一步到位实现mysql优化
MySQL压力测试经验
高效Linux SA
MySQL设计、优化、运维
MySQL数据库设计、优化
MySQL运维那些事
我们的MySQL

What's hot (20)

PPTX
Cgroup lxc在17173 iaas应用池中应用
PDF
4 葉金榮-my sql優化 - 20151219
PDF
PC服务器阵列卡管理简易手册 叶金荣@CYOU-20121223
PPTX
阿里自研数据库 Ocean base实践
PDF
1号店数据库架构
PDF
豆瓣数据架构实践
PDF
阿里CDN技术揭秘
PDF
Hacking Nginx at Taobao
PDF
对MySQL应用的一些总结
PPT
Database.Cache&Buffer&Lock
PDF
基于MySQL的分布式数据库实践
PDF
MySQL多机房容灾设计(with Multi-Master)
PDF
Nginx深度開發與客制化
PPT
新浪微博分布式缓存与队列-2013版
PDF
美团点评技术沙龙010-点评RDS系统介绍
PPTX
分布式缓存与队列
PDF
Ceph intro
PDF
DBA学院课程之:MySQL故障诊断案例
PDF
一个 Mongodb command 的前世今生
PDF
Mvcc (oracle, innodb, postgres)
Cgroup lxc在17173 iaas应用池中应用
4 葉金榮-my sql優化 - 20151219
PC服务器阵列卡管理简易手册 叶金荣@CYOU-20121223
阿里自研数据库 Ocean base实践
1号店数据库架构
豆瓣数据架构实践
阿里CDN技术揭秘
Hacking Nginx at Taobao
对MySQL应用的一些总结
Database.Cache&Buffer&Lock
基于MySQL的分布式数据库实践
MySQL多机房容灾设计(with Multi-Master)
Nginx深度開發與客制化
新浪微博分布式缓存与队列-2013版
美团点评技术沙龙010-点评RDS系统介绍
分布式缓存与队列
Ceph intro
DBA学院课程之:MySQL故障诊断案例
一个 Mongodb command 的前世今生
Mvcc (oracle, innodb, postgres)
Ad

Similar to 如何针对业务做DB优化 (13)

PPT
Sina my sq概述及优化
PPSX
æ%A6%a9 my sql %f0%c8 -%c1%b8%cb+
PDF
MySQL数据库生产环境维护
PDF
浅谈 MySQL 性能调优
PPT
Mysql introduction-and-performance-optimization
PDF
资身Dba经验谈
PPSX
MySQL性能调优最佳实践
PPT
Alibaba数据库运维最佳实践
PPT
一个“兼职Dba”的数据库运维经验谈
PPSX
MySQL应用优化实践
PPSX
浅谈 My sql 性能调优
PPTX
Mysql调优
PPT
MySQL调优
Sina my sq概述及优化
æ%A6%a9 my sql %f0%c8 -%c1%b8%cb+
MySQL数据库生产环境维护
浅谈 MySQL 性能调优
Mysql introduction-and-performance-optimization
资身Dba经验谈
MySQL性能调优最佳实践
Alibaba数据库运维最佳实践
一个“兼职Dba”的数据库运维经验谈
MySQL应用优化实践
浅谈 My sql 性能调优
Mysql调优
MySQL调优
Ad

More from Jinrong Ye (11)

PDF
为什么学习MySQL-20220530.pdf
PDF
程序猿都该知道的MySQL秘籍
DOCX
Tpcc mysql使用手册 - 20120329
DOC
MySQL 6.0 下的cluster + replicate - 20080220
DOCX
InnoDB引擎数据表压缩特性测试 - 20120329
DOC
ibbackup vs mysqldump对比测试 - 20080718
DOCX
Xtrabackup工具使用简介 - 20110427
DOCX
Handler socket测试报告 - 20110422
TXT
mysql cluster测试记录 - 20120905
TXT
dell服务器raid冷迁移方法
DOCX
Hp dl380 g7测试结果报告 - 20100823
为什么学习MySQL-20220530.pdf
程序猿都该知道的MySQL秘籍
Tpcc mysql使用手册 - 20120329
MySQL 6.0 下的cluster + replicate - 20080220
InnoDB引擎数据表压缩特性测试 - 20120329
ibbackup vs mysqldump对比测试 - 20080718
Xtrabackup工具使用简介 - 20110427
Handler socket测试报告 - 20110422
mysql cluster测试记录 - 20120905
dell服务器raid冷迁移方法
Hp dl380 g7测试结果报告 - 20100823

如何针对业务做DB优化

Editor's Notes

  • #7: 介绍一下bloom算法
  • #14: 想啥呢? 大家有没有经历过面试过程中,别人问你一个问题,自已觉的学过,但不知道怎么答。脑子空白了。