数据库内核
施工中请绕行
喜欢研究底层技术,编译原理,操作系统技术,数据库引擎实现原理。2012年校园招聘进入腾讯北分云平台部,从事终端开发职位。
展开
-
实现索引遇到的问题
这些问题是在实现索引时遇到的,我利用B+树实现了索引,整个索引包括以下三个部分:B+树结点,关键字和链接结点。B+树结点存储在索引页中。链接结点是为了解决重复关键字的问题而设计的,所有重复关键字的数据行在数据页的地址在B+树的叶结点以单链表的形式链接起来,其实就是拉链法解决冲突,整个链表保存在链接页中。 B+树的key域是一个64位的数据类型,只能保存整型或者实型的关键字原创 2013-04-03 10:26:13 · 4884 阅读 · 0 评论 -
InnoDB异步IO(AIO)实现详解
文章来源:http://hedengcheng.com/?p=98 Innodb Aio insert into nkeys values (71,71,71,71,71); Innodb的异步I/O,默认情况下使用linux原生aio,libaio。关于异步I/O的优势,可参考网文[18][19];libaio的限制,可见网文[17]。下面详细分析Innodb 异步I/O的处理转载 2013-05-13 08:41:20 · 1555 阅读 · 0 评论 -
Overlapped I/O
第六章 Overlapped I/O,在你身后变戏法 本章回答了如下几个问题: ◆ 什么是Overlapped I/O?为什么需要Overlapped I/O?如何让数据传输支持Overlapped I/O? ◆ 数据传输结束后,Win32提供了哪些方式对用户进行通告,以便进行适当的善后? ◆ 影响线程优先级的因素有哪些?如何获取或设置进程线程优先级?优先级的改变容易带来哪转载 2013-05-13 08:38:32 · 841 阅读 · 0 评论 -
实现一个基本的数据库
大概一年前的这个时候,为了深入了解数据库的内部原理和实现,我决定编写一个数据库系统的原型程序,这个行动断断续续坚持了一年,写了接近3W行C代码,现在除了事务和并发(只做到了存储引擎层面的并发),其他的功能基本都实现了。数据库是底层软件,实现起来有一定难度,为了编写这个程序(暂且就叫做XSQL吧),我阅读了很多关于开源数据库内部原理的书籍资料,总结了主流数据库的结构,然后依据其原理写出了XSQL。接原创 2013-05-20 16:31:26 · 1650 阅读 · 8 评论 -
继实现索引遇到的问题
上一篇文章:http://blog.csdn.net/xinghongduo/article/details/8754650 上一篇文章的最后尝试了取消关键字页,直接将关键字存储在索引节点中减少IO次数的办法。当时的想法还不太成熟,直接将索引节点的关键字长度直接定义为767,索引节点的阶数是固定的,但多数情况下关键字的长度也就是几十字节,大部分的空间得不到利用,IO效率低下,而且索原创 2013-10-17 23:06:02 · 1080 阅读 · 0 评论