10 月 23 - 25 日,QCon 上海站即将召开,现在购票,享9折优惠 了解详情
写点什么

百度技术沙龙第 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:553828
用户头像

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

关注

评论

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

模块化开发一:架构搭建(1)

android 程序员 移动开发

模块化开发一:架构搭建

android 程序员 移动开发

搞懂钩子方法和模板方法,看完这篇就够了

Tom弹架构

Java 架构 设计模式

构建yum库

android 程序员 移动开发

某二次元App签名算法解析(一)

android 程序员 移动开发

新鲜出炉的Android面试题,确定不来看看吗?还有超详细的答案解析哦~

android 程序员 移动开发

查漏补缺:十个Handler面试最常见问题,带你全面理解Handler消息机制

android 程序员 移动开发

模板方法模式

android 程序员 移动开发

求面试别再问我HashMap原理了——史上最全源码解读,别再说你不知道HashMap 原理

android 程序员 移动开发

是面试官放水,还是公司太缺人?这都没挂,2021的字节跳动也太好进了吧

android 程序员 移动开发

最后再说一次!!不要在你的App启动界面设置SingleTask-SingleInstance

android 程序员 移动开发

最接地气的Android面试总结心得

android 程序员 移动开发

未来大趋势!Flutter-VS-Kotlin-跨平台开发市场的最终霸主究竟花落谁家?你看好谁呢?

android 程序员 移动开发

王者荣耀异地多活架构

小智

架构训练营

毕业不到一年的Android 开发陷于迷茫,请求前辈指点一二

android 程序员 移动开发

流媒体协议之WebRTC实现p2p视频通话(二)

android 程序员 移动开发

深入学习-Gradle-自动化构建技术(二)Groovy-筑基

android 程序员 移动开发

来聊聊 Android Jetpack

android 程序员 移动开发

架构师知识分享:架构设计基础之——设计模式

android 程序员 移动开发

新风向!成就了Android,热门框架排第一,你还是不够了解它

android 程序员 移动开发

【LeetCode】范围求和 IIJava题解

Albert

算法 LeetCode 11月日更

某一线互联网大厂内部超高质量Flutter+Kotlin笔记!技术与实战篇!

android 程序员 移动开发

深入Android系统Binder-1-导读与简介(1)

android 程序员 移动开发

深入浅出协程、线程和并发问题

android 程序员 移动开发

是时候丢掉 onActivityResult 了 !

android 程序员 移动开发

有人说这是2021字节跳动-初级Android工程师的面经?吓到我了!我还是去搬砖吧!

android 程序员 移动开发

数组结构七:集合和映射(Set And Map)

android 程序员 移动开发

春招总结!大厂淘汰率80%,面试难度极高

android 程序员 移动开发

最新Android面试题整理

android 程序员 移动开发

来自阿里P7的兄弟给我说:赶紧掌握这项技术太吃香了

android 程序员 移动开发

深入Android系统Binder-1-导读与简介

android 程序员 移动开发

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