自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 本blog停止更新,请访问新的blog地址:http://blog.csdn.net/yzyangwanfu

本blog停止更新,请访问新的blog地址:http://blog.csdn.net/yzyangwanfu

2010-07-26 14:54:00 3196

原创 mysql内核分析--innodb哈希表的内部实现(上)

 1.哈希表的概述   hash表的实现是innodb的基础功能之一,通过关键值进行映射,从而迅速进行查询、插入、删除的操作。   hash表算法,在数据库内核里面被广泛的使用,举个例子,这个结构将会在下文中继续使用的。/* Data structure for a column in a table */struct dict_col_struct{       hash

2008-09-21 22:09:00 4595 2

原创 mysql内核分析--innodb动态数组内部实现(下)

  2)used    used表示data[DYN_ARRAY_DATA_SIZE]字段中已经使用的字节的数量,假设需要申请len字节的长度,在使用之前需要判断的是,尾 block中的可用空间是否够用。也就是判断判断下used+len是否满足used+len,如果满足就可以放进该block,并将已使用的字节数used加上len。    如果,该block空间不够,那么就会申请一个新的

2008-09-17 00:27:00 2490

原创 mysql内核分析--innodb动态数组内部实现(上)

innodb动态数组内部实现1 1.       动态数组概述动态数组涉及的文件是innodb存储引擎的三个文件:dyn0dyn.h、dyn0dyn.ic以及dyn0dyn.c。   这是一个基本的组件功能,是作为一个动态的虚拟线性数组。数组的基本元素是byte。动态数组dyn主要用来存放mtr的锁定信息以及log。Dyn在实现上,如果block需要分裂节点,则会使用一个内存堆。每

2008-09-13 21:43:00 2810

原创 如何编译mysql内核

如何编译mysql内核  在最新的版本中,windows环境与linux环境下使用一套代码。比如mysql-6.0.4-alpha版本中的INSTALL-WIN-SOURCE文件的描述:   To  build MySQL on Windows from source, you must satisfy the   following system, compiler, and res

2008-09-12 09:35:00 3714

翻译 Mysql查询优化器浅析(下)

 Mysql查询优化器浅析(下)译者:杨万富   7 存取类型 当我们评估一个条件表达式,MySQL判断该表达式的存取类型。下面是一些存取类型,按照从最优到最差的顺序进行排列:system      … 系统表,并且是常量表const       … 常量表eq_ref      …   unique/primary索引,并且使用的是=进行存取ref

2007-12-17 09:20:00 5074 3

翻译 Mysql查询优化器浅析(上)

 Mysql查询优化器浅析(上)译者:杨万富 1 定义   Mysql查询优化器的工作是为查询语句选择合适的执行路径。查询优化器的代码一般是经常变动的,这和存储引擎不太一样。因此,需要理解最新版本的查询优化器是如何组织的,请参考相应的源代码。整体而言,优化器有很多相同性,对mysql一个版本的优化器做到整体掌握,理解起mysql新版本以及其他数据库的优化器都是类似的。  优

2007-12-13 11:58:00 8800 1

翻译 InnoDB记录结构浅析

 InnoDB记录结构浅析译者:杨万富   InnoDB记录由三个部分组成,见表1:表1:InnoDB的记录组织形式 名称 长度

2007-12-12 14:54:00 3768 4

翻译 InnoDB页结构浅析

 InnoDB页结构浅析译者:杨万富        InnoDB将所有的记录存放在数据库页中(也可以称为数据块)。一般情况下,所有的页大小都是16KB。      数据页中不仅仅包含实际的记录,还包含其它的一些内容,比如文件头以及文件尾等等。 InnoDB的页包含以下几个部分:1)      Fil Header:文件头2)      Page Header:页

2007-12-10 17:44:00 5743 3

原创 深入理解数据库原理系列(2)---并发控制原理

 并发控制原理作者:杨万富    事务之间的相互影响可能导致数据库状态的不一致,即使各个事务能保持状态的正确性,而且也没有任何故障发生。因此,不同事务中各个步骤的执行顺序必须以某种方式进行规范。控制这些步骤的功能由DBMS的调度器部件完成,而保证并发执行的事务能保持一致性的整个过程称为并发控制。调度器的作用如图1所示。   首先讨论如何保证并发执行的事务能保持数据库状态的正

2007-12-10 10:55:00 4131 1

原创 深入理解mysql之BDB系列(3)---数据页结构

  四:数据页结构4.1 B/H主要页结构4.1.1结构图4.1.2数据结构 typedef struct _db_page {       DB_LSN        lsn;                                            //LSN       db_pgno_t     pgno;            

2007-12-10 09:43:00 5324

原创 深入理解mysql之BDB系列(2)---数据元页结构

  三:数据元页结构3.1 metepage头结构该结构是一个公共结构。用于B树matapage页、HASH的matepage页以及queue的metapage。   typedef struct _dbmeta33 {       DB_LSN        lsn;                                //LSN       db_pgno

2007-12-10 09:31:00 3684

原创 深入理解mysql之BDB系列(1)---BDB相关基础知识

    深入理解mysql之BDB系列(1)---BDB相关基础知识作者:杨万富 一:BDB体系结构1.1.BDB体系结构BDB整体的体系结构如图1.1所示,包含五个子系统(见图1.1中相关数)。1)数据存取子系统,2)事务子系统,3)锁子系统,4)内存池管理子系统,5)日志子系统。在一个应用程序中,并不一定需要完全具备这5大子系统。如果程序只使用了数据存取子系统,

2007-12-10 09:19:00 12156

原创 深入理解数据库原理系列(1)---日志系统原理

   日志系统原理     作者:杨万富 一:事务系统1.事务的工作模型   事务必须满足原子性,所封装的操作或者全做或者全不做。事务管理系统需要做两件事,1)让日志系统产生日志,2)保证多个事务并发执行,满足ACID特性。   事务系统工作模型,见图1。    如图,事务管理管理器控制查询处理器的执行、控制日志系统以及缓冲区。日志在缓冲

2007-12-10 09:05:00 7190 2

原创 数据库性能调优技术系列文章(4)--深入理解散列连接执行计划

 数据库性能调优技术                       --深入理解散列连接执行计划                             作者:杨万富 一、概述这篇文章是数据库性能调优技术系列的第四篇。上一篇文章讲解了深入理解嵌套循环连接执行计划。上一篇文章中提到两张表的连接有三种执行方式:1)嵌套循环连接;2)散列连接;3)归并连接。散列连接是很重要

2007-09-03 09:41:00 4446 3

原创 数据库性能调优技术系列文章(3)--深入理解嵌套循环执行计划

 数据库性能调优技术          --深入理解嵌套循环执行计划                                          作者:杨万富一、概述       这篇文章是数据库性能调优技术的第三篇。上一篇文章讲解了深入了解单表执行计划,单表执行计划是理解多表执行计划的基础。       两张表的连接有三种执行方式:1)嵌套循环连接;2)

2007-08-23 16:29:00 3419

原创 数据库性能调优技术系列文章(2)--深入理解单表执行计划

  数据库性能调优技术系列文章(2)                            --深入理解单表执行计划                               作者:杨万富 一、概述      这篇文章是数据库性能调优技术的第二篇。上一篇讲解的索引调优是数据库性能调优技术的基础。这篇讲解的深入理解单表执行计划,是数据库性能调优的有力工具。     

2007-08-17 12:41:00 3254

原创 B树系列文章(3)--删除、更新操作

  4.B树上的删除元组操作     假设B树的组织形式如图7。      删除索引键值为9的记录,执行流程:   1)以索引键值=9查询B树,定位要删除的元组,该元组位于叶子节点L1。   2)删除索引键值=9的入口项,10、16对应的记录向前移动一个位置。参照图8。     一般的文档上都会描述下溢节点,也就是说入口项

2007-08-10 17:26:00 3699

原创 B树系列文章(2)--插入操作

 3.B树上的插入操作 为了便于问题的描述,现重新构造一个只有两层的B树。见图2。  简单插入操作:    参考图2,先考虑一个简单的操作,向该B树插入一条索引键值为9的记录。执行流行如下:     1)执行索引键值=9的查找操作,确定该新记录应该插入到叶子节点L1中。     2)此时发现叶子节点L1中还是有空闲记录空间的,因此可以确定该新记录可以插入L1中而不会导致分裂

2007-08-10 15:16:00 3913

原创 B树系列文章(1)--查询操作

     B树是最重要的存取路径结构。B树总是平衡的,并且对任意修改操作来说,也容易维持B树的平衡。1.B树的基本思想   B树的每个节点都是一个页面。B树有两种类型的节点:叶子节点和索引节点。叶子节点包含要查找的数据,对聚集索引而言数据是记录,对非聚集索引,这里的数据是指索引列、主关键字(或ROWID)。索引节点不包含数据,只包含下一层节点的路由信息。   B树索引节点的抽象数据

2007-08-10 15:01:00 3725 6

原创 数据库性能调优技术系列文章(1)--索引调优

数据库性能调优技术系列文章(1)                            --索引调优                               作者:杨万富一、概述   随着数据库在各个领域的使用不断增长,越来越多的应用提出了高性能的要求。数据库性能调优是知识密集型的学科,需要综合考虑各种复杂的因素:数据库缓冲区的大小、索引的创建、语句改写等等。总

2007-08-10 14:54:00 2380

原创 空指针的利用

利用空指针,返回结构成员在结构中的偏移量  一:代码如下#includestdio.h> typedef struct _bkeydata ...{       unsigned short len;        /**//* 00-01: Key/data item length. */       unsigned char type;            /**//*

2006-11-17 09:13:00 1632 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除