AICon 上海站|90%日程已就绪,解锁Al未来! 了解详情
写点什么

百度技术沙龙第 37 期回顾:MySQL 优化实践(含资料下载)

  • 2013-04-23
  • 本文字数:2205 字

    阅读完需:约 7 分钟

在 4 月 20 日由 @百度主办、 @InfoQ 负责策划组织和实施的第 37 期百度技术沙龙活动上,百度运维部 DBA 王剑英和人人网数据中心技术副总监刘启荣分享了各自的 MySQL 优化实践经验,话题涉及“SEQDB——高性能 KV 型 MySQL 存储引擎”,以及“MySQL 运维感悟”等。本文将对他们各自的分享做下简单的回顾,同时提供相关资料的下载。

主题一:SEQDB——高性能 KV 型 MySQL 存储引擎 (下载讲稿

百度运维部 DBA 王剑英介绍了他们的技术选型过程,他首先列举了三个不同的业务场景,并分析了使用 Innodb 的解决方案。通过对于 Innbodb 的测试,他发现 Innodb 不能很好的满足百度的业务需求,主要是存在如下的问题:

  1. 数据量超过内存,IO bound 时,依赖 IOPS。
  2. Innodb 不能发挥高性能 IO 设备的潜能。
  3. Innodb 不能达到 100ms 以下 99.99% 的 SLA,达不到业务场景的要求。

为了完全发挥 SSD 的潜能,使得 QPS>=IOPS、低延迟,并且实现 SQL 接口、经验的复用,他们提出了如下的两套解决方案:

经过了一系列的对比,他们选择写一套自己的引擎。同时,为了提高面向业务的性能实现,他们选择在功能上放弃 join、range、group by 等复杂的查询功能,不做全功能引擎,简化复杂度,只支持基于主键的增删改查。

百度的 Sequentialdb 总体构架如下:

随后他从细节上分享了百度对于 SEQDB 的设计细节,包括应用的访问模型、索引结构、数据查找、垃圾回收、元信息位图和 BLOCK 管理等实现。

最后他分享了其他经验:

  1. 对于索引常驻内存安全性,建议使用一主多从和备库的结构,内存的安全性是足够的,索引放在磁盘上访问成本太高;
  2. SSD 损坏的月概率是 0.1% 以下,远低于 HDD,如果磁盘损坏则无法恢复;
  3. 时延敏感型应用,瓶颈会出现在写 binlog 上,建议调整 sync_binlog,将 binlog 迁移到 SSD 上;
  4. 毫秒级别超时 API 满足业务的延时需求

主题二:MySQL 运维感悟(下载讲稿

人人网数据中心技术副总监刘启荣的介绍这 9 年来运维 MySQL 的一些经验和心得:包括 MySQL 数据从单台演化到一个集群的过程中,所遇到过的一些问题以及所采用的解决方案、在数据库管理过程中认知的转换与变化、在整体性能优化中的各方面的取舍等。

他根据数据库机器规模的不同阶段分享了具体的实践经验:

  1. 在一个台服务器的阶段:备份

    大家一般处于应用的初期,此时性能不是最重要的,要做好备份;

  2. 在两台服务器的阶段:监控

    这个阶段一般都会建立主 / 从的数据库架构,由于宕机造成数据差异、网络问题、从库空间不足或者主库 binlog 丢失都会导致同步的问题。为了解决这个问题,需要做好监控,开启 sql_thread、io_thread,并且延时主从备份。

  3. 在十台服务器的阶段:散列

    如果面临频繁写操作,突然宕机的状况将会增多,这个时候需要对数据库做散列。

  4. 在一百台服务器的阶段:Proxy Cluster

    HA 的可靠性将会降低,需要使用 proxy cluster、HA、备份、在线的 DDL 同时使用;

  5. 在一千台服务器的阶段:系统化

    DBA 开始远离业务,部门之间的协作需求也越来越多,然而由于“人永远不靠谱”,需要标准化、自动化、统一化和流程化来保障运营需要。

百度技术沙龙三周年

本期是百度技术“三周年”,沙龙的第一期讲师刘洪清、LAMP 人社区的潘少宁、往期讲师王集鹄等嘉宾也来到现场与参会者一起为沙龙庆生。

Open Space(开放式讨论环节)

为了促进参会者与我们每期的嘉宾以及讲师近距离交流,深入探讨在演讲过程中的疑问,本次活动依然设置了 Open Space(开放式讨论)环节。

在 Open Space 的总结环节,几位话题小组长分别对讨论的内容进行了总结。

王剑英:我们针对不同的应用场景讨论了 MySQL 与不同引擎的结合方案;

刘启荣:从数据库优化的角度,对数据库选型、引擎、拆分等方面来分享了大家的经验;

DSpark:主要是和几个朋友讨论了 Python 和大数据使用相关的内容;

王集鹄:关注了 PC 和移动端感应器的区别,同时比较了 Native 和 HTML5 App 的用户体验的差异,还讨论了前端 CSS 的模块话处理方案;

会后,一些参会者也通过新浪微博分享了他们的参会感受:

wxianfeng :好多关键词啊:TPS、 QPS、SSD、HDD、IOPS、RAID 5、INNODB、handler socket、SeqDB、 binlog、位图、Master-Slave、snapshot……另外 @四喜和丸子 的演讲好搞笑啊, 祝百度技术沙龙越办越好.

太微左桓:昨天的百度技术沙龙没听懂多少东西,不过惊喜却是遇到了王集鹄老师,一轮 OpenSpace,收获是巨大的。很庆幸没有中途离场,现在想起来,还是忍不住的亢奋。

快盘 - 符小钻: 百度技术沙龙听 @四喜和丸子 讲 mysql 维护,苦逼地发现百实例级别的问题我们都碰到了。再往后,把完善的监控和自动化部署做好,千实例级别完全没有问题。再深入一些,可以根据我们业务的需求做深度定制的存储引擎。抑或是通用的数据分区方案。

harry 小淫既天才:从上年刚进百度实习就开始参加了百度技术沙龙,到现在有好几期了。很喜欢这种开放自由交流的感觉,也开阔了视眼。今天是小度沙龙三周年,祝小龙龙越办越好,影响越来越大。

Artisan_code :人很不靠谱,靠技术来约束。百度技术沙龙,人之出,性本懒。人的自制力是不靠谱的,需要周围的环境来约束,想腐败都不行。

有关百度技术沙龙的更多信息,可以通过新浪微博关注 @百度技术沙龙,或者关注 InfoQ 官方微信:infoqchina,InfoQ 上也总结了过往 36 期所有百度技术沙龙的演讲视频和资料等,感兴趣的读者可以直接浏览内容

特别提示:第38 期百度技术沙龙将在5 月25 日,在深圳举行,欢迎关注 @InfoQ @百度技术沙龙获取后续的活动信息。

2013-04-23 03:553651
用户头像

发布了 89 篇内容, 共 33.7 次阅读, 收获喜欢 4 次。

关注

评论

发布
暂无评论
发现更多内容

单片机异常复位后如何保存变量数据

不脱发的程序猿

嵌入式 单片机 4月日更 硬件研发 单片机异常复位

Java开发8年,40W年薪被别人叫垃圾?请你们不要口嗨了,好好去刷题吧!

Java架构追梦

Java 架构 面试 金三银四 年薪40W

清明节特辑 |记忆存储、声音还原、性格模仿……AI可以让人类永生吗?

华为云开发者联盟

AI 语音合成 清明节 对话机器人 VR/AR

短视频编辑:基于ExoPlayer可实时交互的播放器

梅芳姑

Netty HashedWheelTimer 时间轮源码详解

Yano

Java 架构 Netty

Serverless 可观测性的过去、现在与未来

阿里巴巴云原生

Serverless 容器 开发者 云原生 调度

二次元界福音:MakeGirlsMoe创建动漫人物

不脱发的程序猿

GitHub 开源 4月日更 二次元 MakeGirlsMoe

融云X-Meetup南京站 探讨实时通信架构的高质量设计

融云 RongCloud

融云推出超值套餐包,音视频20万分钟免费享

融云 RongCloud

如何美化 GitHub 个人主页?

彭宏豪95

GitHub 写作 markdown IT 4月日更

自己搭建一个语音聊天室

anyRTC开发者

ios android 音视频 WebRTC RTC

定义边缘计算架构需考虑的三个方面

边缘计算

软件测试分类体系,系统学习

程序员阿沐

软件测试 测试工程师 黑盒测试 白盒测试 测试类型

程序员面试指北:如何更高效的准备面试

邴越

Java 面试 求职 招聘

MySql数据库列表数据分页查询、全文检索API零代码实现

crudapi

全文检索 API crud crudapi 列表查询

用DeBug的方式,带你掌握HBase文件在Snapshot的各种变化

华为云开发者联盟

HBase 元数据 数据迁移 数据备份 Snapshot

实时数据仓库的发展、架构和趋势

网易数帆

数据仓库 实时计算 实时数仓 iceberg 批流一体

如何实现微信8.0爆炸和烟花表情特效

梅芳姑

flink流计算可视化web平台

无情

sql 流计算 flin

Kubernetes 稳定性保障手册 -- 可观测性专题

阿里巴巴云原生

Serverless 容器 云原生 k8s 存储

业务随行:用户的网络访问策略还能这么玩

华为云开发者联盟

网络 通信 安全组 IP地址 业务随行

NAC公链主打应用而生的NA(Nirvana)公链有什么过人之处?

区块链第一资讯

OpenTelemetry 简析

阿里巴巴云原生

容器 开发者 云原生 k8s 监控

SCF—BSS3.0的“公路网”

鲸品堂

工具 框架搭建 流式计算框架

那些我磕过的音视频项目总结

梅芳姑

2021年Android面经分享,赶紧收藏!

欢喜学安卓

android 程序员 面试 移动开发

Hexo + Material + Github 搭建博客

U2647

博客 4月日更

8x Flow 业务建模法(一):你能分清业务和领域吗?

胡皓

领域驱动设计 DDD 架构设计 事件风暴 业务建模

重磅官宣:Nacos2.0 发布,性能提升 10 倍

阿里巴巴云原生

Java 容器 微服务 云原生 应用服务中间件

Rust从0到1-所有权-引用和借用

rust 引用 所有权 借用

在npm发布自己的组件

空城机

JavaScript 大前端 npm 4月日更 自定义组件

百度技术沙龙第37期回顾:MySQL优化实践(含资料下载)_数据库_水羽哲_InfoQ精选文章