表示 进入内容 16
Displaying posts with tag: 数据库研发 (reset)
My sql 5.6新特性深入剖析——innodb引擎

简介

2012-09-29,MySQL 5.6第一个RC版本发布(MySQL 5.6.7),2013-02-05,MySQL 5.6第一个GA版本发布(MySQL 5.6.10)。总的来说,MySQL 5.6算是一个值得期待的版本,包含了大量的新特性,了解这些新特性,不仅对数据库内核研发有帮助,对于更好的使用MySQL数据库也有着极大的意义。

 

因此,本人从2012年初开始,就一直关注MySQL 5.6版本的各个新特性,阅读每一个5.6版本相关的相关博文,下载其最新的版本进行测试验证,积累下了一定的心得与收获,形成了这个介绍MySQL 5.6新特性深入剖析的PPT。本PPT一共分为两期:分别是InnoDB引擎以及MySQL Server。

 

本次为第一期,分享 MySQL 5.6 InnoDB引擎中的性能优化与功能增强。性能优化包括:Read-Only Transaction,Buffer Pool Flushing,Page …

[获取更多]
InnoDB Memcached Plugin源码实现调研

背景

 

MySQL 5.6版本,新增了一个NoSQL的接口,通过将memcached嵌入到MySQL系统之中,用户可以直接使用memcached接口直接操作MySQL中的InnoDB表,绕过MySQL Server层面的SQL解析,优化,甚至绕过InnoDB Handler层,直接操作InnoDB内部的方法,从而达到更优的响应时间与效率。关于此功能的官方介绍,请见:InnoDB Integration with memcached 。嵌入memcached之后,整个MySQL的架构如下图所示:

 

 

本文接下来的部分,将从源码的角度,详细分析InnoDB Integration with memcached的实现细节问题。

 

导读

 

  • InnoDB引擎为了支持Memcached API,在Handler层面进行的改动,请见(一)

[获取更多]
二分查找(Binary Search)需要注意的问题,以及在数据库内核中的实现

问题背景

 

今年的实习生招聘考试,我出了一道二分查找(Binary Search)的题目。题目大意如下:

 

给定一个升序排列的自然数数组,数组中包含重复数字,例如:[1,2,2,3,4,4,4,5,6,7,7]。问题:给定任意自然数,对数组进行二分查找,返回数组正确的位置,给出函数实现。注:连续相同的数字,返回第一个匹配位置还是最后一个匹配位置,由函数传入参数决定。

 

我为什么会出这道题目?

 

  • 二分查找在数据库内核实现中非常重要

[获取更多]
SQL中的where条件,在数据库中提取与应用浅析

1        问题描述 一条SQL,在数据库中是如何执行的呢?相信很多人都会对这个问题比较感兴趣。当然,要完整描述一条SQL在数据库中的生命周期,这是一个非常巨大的问题,涵盖了SQL的词法解析、语法解析、权限检查、查询优化、SQL执行等一系列的步骤,简短的篇幅是绝对无能为力的。因此,本文挑选了其中的部分内容,也是我一直都想写的一个内容,做重点介绍:   给定一条SQL,如何提取其中的where条件?where条件中的每个子条件,在SQL执行的过程中有分别起着什么样的作用?   通过本文的介绍,希望读者能够更好地理解查询条件对于SQL语句的影响;撰写出更为优质的SQL语句;更好地理解一些术语,例如:MySQL 5.6中一个重要的优化——Index Condition Pushdown,究竟push down了什么?   …

[获取更多]
NTSE、TNT引擎研发之自动化测试实践

背景介绍 软件自动化测试,是软件测试中的一类分支。自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在此过程中,为了节省人力、时间或硬件资源,提高测试效率,便引入了自动化测试的概念。   基于NTSE、TNT项目的特点: 软件需求变动不频繁 NTSE是MySQL的一个非事务存储引擎,TNT是MySQL的事务存储引擎。两个项目在立项之初,就已经确定了项目的特性及主要功能。NTSE项目从2008年6月至今,其核心功能几乎没有变化。 项目周期长 …

[获取更多]
从MySQL Bug#67718浅谈B+树索引的分裂优化

问题背景 今天,看到Twitter的DBA团队发布了其最新的MySQL分支:Changes in Twitter MySQL 5.5.28.t9,此分支最重要的一个改进,就是修复了MySQL 的Bug #67718:InnoDB drastically under-fills pages in certain conditions。关于此Bug的详细描述,以及如何重现此问题,可以阅读以上的Bug链接,以下简单描述下此Bug对应的问题:   InnoDB的索引分裂策略,在特定的情况下,索引页面的分裂存在问题,导致每个分裂出来的页面,仅仅存储一条记录,页面的空间利用率极低。   此Bug引起了我的兴趣,因此准备跟大家简单聊聊B+树索引的结构、B+树的分裂、B+树分裂操作的优化、Bug #67718的成因,以及个人对如何修复此Bug的一些建议等。   B+树索引结构 …

[获取更多]
表示 进入内容 16