Archive

Posts Tagged ‘mysql’

MySQL如何避免使用swap

December 23rd, 2010 4 comments

Linux有很多很好的内存、IO调度机制,但是并不会适用于所有场景。对于DBA来说Linux比较让人头疼的一个地方是,它不会因为MySQL很重要就避免将分配给MySQL的地址空间映射到swap上。对于频繁进行读写操作的系统而言,数据看似在内存而实际上在磁盘是非常糟糕的,响应时间的增长很可能直接拖垮整个系统。这篇blog主要讲讲我们作为DBA,怎样尽量避免MySQL惨遭swap的毒手。
Read more…

MySQL Online DDL和NoSQL Schemaless Design

October 9th, 2010 5 comments

在MySQL众多的不足中,Offline DDL绝对位居前三甲。最常用的InnoDB引擎是通过以下步骤来进行DDL的:
1、按照原始表(original_table)的表结构和DDL语句,新建一个不可见的临时表(tmp_table)
2、在原表上加write lock,阻塞所有更新操作(insert、delete、update等)
3、执行insert into tmp_table select * from original_table
4、rename original_table和tmp_table,最后drop original_table
5、解开write lock

我们可以看见在InnoDB执行DDL的时候,原表是只能读不能写的。而在大表上进行DDL操作的时候,第3步会消耗大量时间。有一次我在6亿记录的表上执行DDL,10个小时都没做完,最后只能忍痛取消了。为了解决Offline DDL的痛苦,目前比较常用的是以下几种方法:
一、在备库先执行DDL,然后进行一次主备切换操作,再在主库上执行DDL。这种方法适用于增减索引,如果是增加字段就需要额外注意
二、Sharding。将大表拆分成很多小表,减少每次DDL影响的范围和时长。这种方法适用于业务简单的系统,如果路由字段不定则需要强大的数据中间层(DAL)提供支持
三、预留字段。在建表的时候预留几个常用类型字段可以保证在业务变化时尽量避免DDL。这种方法没办法处理增加索引的需求
Read more…

mysql中线程缓存并重用的实现机制

September 5th, 2010 5 comments

在上一篇”mysql源码-网络连接流程“中,我们分析了mysql的启动–网络部分初始化–接受客户端连接请求的一个过程.
其中在对于接受客户端连接请求的时候,mysql要么创建一个新的线程来处理,要么重用以前的线程,说白了就是类似于线程池.
客户端如果关闭,一般来说相应的线程并不真正的退出,mysql仅仅是消除与这个连接相关的一个东西,线程本身还是会保留,直到外部有连接请求,那这时mysql就可以重用这个线程,而不必再浪费时间去创建一个新的线程.因为虽然是线程,但创建毕竟还是需要一定代价的,特别是在数据库连接比较多的时候,这种机制能够节省很客观的资源.

那么mysql是如何重用线程的呢?首先需要说明一下几个与此密切相关的全局变量的含义:

  • thread_count:当前线程数目,初始为0,由LOCK_thread_count保护
  • wake_thread:初始为0
  • cached_thread_count:初始为0,记录此时有多少线程被cached了

一个客户端连接请求和关闭的过程中,与创建、关闭线程密切相关的流程如下: Read more…

Categories: 数据库 Tags: ,

淘宝网DBA团队将组织举办首届中国互联网数据库技术论坛(华东站)

May 20th, 2010 23 comments

      为了加强中国互联网行业数据库技术的交流和分享,淘宝网DBA团队将于2010年6月19号组织举办首届中国互联网数据库技术论坛(华东站)。本次技术论坛我们将邀请华东地区具有代表性的互联网企业包括eBay、盛大网络、网易、斯凯网络、前程无忧网、久游游戏及阿里巴巴集团旗下各子公司(阿里巴巴B2B、淘宝网、支付宝、阿里云)的嘉宾,一起讨论分享互联网行业数据库技术架构的发展变化历程和经验。以下为会议内容: 

会议名称:首届中国互联网数据库技术论坛(华东站)

会议议题:互联网数据库架构及发展方向

地点:杭州市文二路391号西湖国际科技大厦裙楼2层百花谷

时间:2010年6月19号 

会议议程:

时间 主题 分享嘉宾
10:00-10:10 开场致辞 刘振飞:淘宝网技术保障部副总裁
10:10-11:40 淘宝网数据库架构体系及发展历程 徐进挺:淘宝网DBA
13:00-14:00 数据库与分布式文件系统的应用结合 徐景春:盛大网络DBA
14:10-15:40 开源数据库在互联网行业的使用 周正中:斯凯网络DBA主管;周振兴:淘宝网DBA
15:50-17:00 高并发OLTP数据库的性能优化 范向荣:eBay DBA

       本次技术论坛将会对外开放20个名额,请有意参加者将自己的姓名、公司名称、职务、手机号发送至:liuyun (at)taobao.com,我们将会从中挑选20名嘉宾一起参加本次技术论坛。