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

在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\u0026gt;=IOPS、低延迟,并且实现SQL接口、经验的复用,他们提出了如下的两套解决方案:

\

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

\

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

\

百度的Sequentialdb总体构架如下:

\

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

\

随后他从细节上分享了百度对于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、@百度技术沙龙获取后续的活动信息。

你可能感兴趣的:(百度技术沙龙第37期回顾:MySQL优化实践(含资料下载))