MySQL优化:淘宝核心库上的MySQL运维

        业界举世瞩目的“2012数据库技术大会”已于2012年4月13日在京盛大召开,本次大会已经是IT168、ITPUB、IXPUB、ChinaUnix联合主办的第三届数据库技术会议。大会将针对大数据架构设计、数据库安全、分布式数据库、商业智能、NoSQL、Hadoop等多个重点话题进行深入探讨。此次大会得到了全国数据库技术高手们的高度关注与支持,是当前象征最高技术水平的数据库工程师盛会。


        在当天下午的MySQL应用实践专场中来自淘宝网的DBA架构师周振兴为与会人员带了淘宝核心库优化实践课程《核心库上的MySQL运维》。


        MySQL已经成为淘宝最主要的在线数据存储工具,周振兴老师这次将为大家介绍淘宝MySQL DB架构,以及如何实现切换(Failover)、如何优化、维护MySQL,从而低成本,高效率的支持淘宝在线数据业务。




MySQL@TaoBao


        周振兴介绍说,MySQL在淘宝已经支撑起相当多的业务,登录过淘宝的用户都会看到以下所示的界面。



▲ 淘宝购物界面


        此界面中的多数信息都是存放在MySQL中的,如URL、欢迎信息、价格、物流、评价等。淘宝的业务是垂直划分的,如商品中心、交易中心等很多业务线,所有的APP都是通过中间层TDDL(淘宝分布式数据层)访问到数据库(群集)。商品中心现有5TB的数据,应用、搜索和数据仓库都需要用到数据库,但搜索和数据仓库通过中间层访问的是数据库中的配置信息,监控系统会随时异常的访问进行预警。

        容灾也是DBA必须要考虑的,多个MySQL主机中的某台主机一旦发生故障,如果是关键节点,则会自动将其访问切换到其他主机上,早期通过IP地址实现数据库的切换,提供给客户端的数据库连接IP,因为切换后,IP地址变了,如果手动更改程序,就不太现实。所以,现在改用域名的方式。因为DNS可以进行相应的配置。操作起来比较灵活。


MySQL表优化

        周振兴现场为大家介绍了MySQL Optimize Table,很难说Optimize Table到底能不能提高系统运行效率,但是有一点是肯定的:它能够帮我们回收更多的空间、减少“碎片”(defragment)。在InnoDB的维护过程中,我们总会遇到磁盘耗尽、或者InnoDB Tablespaces用完的情况。这时候,在考虑扩容等方案之前,最好先使用Optimize Table试试。如果你的表大字段(Text Blob Varchar),并且更新、删除较频繁的话,Optimize之后可能会腾出大量的空间。目前支持optimize命令的引擎有 MyISAM, InnoDB, and ARCHIVE,对于InnoDB,会将optimize命令映射为ALTER TABLE命令,该命令会重建数据表,更新索引统计信息、回收主键索引中空间。如果你的MySQL是有备库的,如果你只希望在主库上执行的话,那么可以加上关键字NO_WRITE_TO_BINLOG(或者LOCAL,意思完全相同)。这对于MM结构的MySQL数据库尤为重要,因为很多时候,你只是想在备库上执行,而不希望影响主库。



        当运营中的MySQL服务器增多的时候,Bug也在所难免,如何处理Bug?周振兴给大家介绍了一些工具和方法,他说,尝试找到Bug重现的场景,确定这是一个Bug,而不是一个Mistake。一般遇到Bug,都能在MySQL Bug找到线索,如果能够确定是Bug,可以看看新的版本是不是已经修复,如果修复则可以考虑升级小版本号。另外,找到Bug重现的场景,还可以考虑绕过Bug(workaround),让自己的应用或者DDL尽量避免Bug出现。有时候,新版本新特性会带来一些Bug,不得以我们还可以考虑降级版本,虽然这是不推荐的做法,因为这样的可能陷入死循环。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值