MySQL5.6.7-rc index condition pushdown代码解读

对index condition pushdown很感兴趣,并且跟踪代码让自己受益良多,因此就来跟一下相关代码。

看的是mysql5.6.7-rc官方社区版。

 

先说说我对研究MySQL源码的看法:

每个使用MySQL数据库的人都应该看代码吗?不是的,那意味着MySQL数据库的使用门槛太高,几乎不可用;但另一方面,如果看MySQL代码的人多了,意味着有更多的人对MySQL数据库的了解更加深入。能够进一步推动MySQL数据库广泛而恰当地使用,为使用者、相关从业者创造更多的赢利机会和就业机会。

2012年11月18日将在上海举办2012华东架构师大会

会议名称:华东架构师大会

时间:2012年11月18日08:30 — 18:00 (星期天)

地点:上海市杨浦区国定东路200号中国创业者公共实训基地主楼22层

 

参会形式:免费报名制(注释:须事先报名,场地有限)

会议定位:企业应用架构的最佳实践

会议主题:社交游戏架构、网页游戏架构、云计算架构、分布式中间件、大数据架构

 

目标人群:

1、CIO、CTO、技术总监、运维总监、架构师

2、研发工程师、研发主管、研发经理

3、DBA、运维经理、云计算工程师、云计算架构师等

会议简介:

主持人:冯大辉

冯大辉,东北人,著名Oracle专家, 获得甲骨文公司授予的Oracle ACE Director头衔,知名博主(Blogger)。大学的专业是生物技术,毕业后从事计算机行业。曾就职于阿里巴巴集团旗下支付宝(中国)网络技术有限 公司,任职数据库架构师。2010年6月10日正式离职,加盟丁香园网站出任CTO。

MariaDB数据库5.5.27 HASH JOIN源码解读

MariaDB数据库加入了对HASH JOIN算法的支持,我对HASH JOIN不了解,借此机会学习一下,测试的数据库版本为MariaDB5.5.27。

先是配置文件,这是我为了方便跟踪源码,在windows上建的环境。

 

D:mariadb-5.5.27sqlDebug>more my.ini
[mysqld]
innodb_file_per_table
optimizer_switch='index_condition_pushdown=on'
optimizer_switch='mrr=on'
optimizer_switch='mrr_sort_keys=on'
optimizer_switch='mrr_cost_based=off'
mrr_buffer_size=32M
optimizer_switch='join_cache_incremental=on'
optimizer_switch='join_cache_hashed=on'
optimizer_switch='join_cache_bka=on'
join_cache_level=4

 

MySQL数据库从load data引发的死锁说起

一个线上项目报的死锁,简要说明一下产生原因、处理方案和相关的一些点.
1、背景
         这是一个类似数据分析的项目,数据完全通过LOAD DATA语句导入一个InnoDB表中。为方便描述,表结构简化为如下:

Create table tb(id int primary key auto_increment, c int not null) engine=innodb;

导入数据的语句对应为
Load data infile ‘data1.csv’ into table tb;
Load data infile ‘data2.csv’ into table tb;

新接手一个电商网站 如何进行网站优化

主笔:光明

这是最近被问过最多的一个问题,很有必要整理成一篇文章来分享。本文讨论的是新接手一个电商网站,不是接手一个新电商网站。因此,网站默认为已运营一段时间,有历史数据可供参考。

我一直主张基于数据分析的网站优化,特别是电商网站。同时,做事的时候,可以再加上一点点直觉。直觉是什么?直觉是一个人的学识再加上经验累积出来的判断力。所以有时要敢于相信直觉!(这是《读心神探》里的姚sir(林保怡)对直觉的总结,很有道理。)

 

既然是优化电商网站,我们第1个就要从电商网站最基本的流程和功能入手:下单付款。

master_pos_wait函数与MySQL数据库主从复制切换

背景

  主从切换是高可用MySQL架构的必要步骤(即使用不发生,也要有备无患)。一般设置为双M(M1、M2),假设当前状态为写M1,而M2只读,切换的大致流程如下:

1、  停止应用写M1,将M1设置为只读
2、  检查M2的slave status直到赶上M1
3、  将M1设置为可写

其中在第2步细化为
a)       在M1上show master status;得到binlog位置P,因为已经设为只读,不会变化