Archive | database concept RSS feed for this section

Mysql 索引原理(MyISAM&InnoDB)

一、要点

在MySQL中,索引属于存储引擎级别的概念,不同存储引擎对索引的实现方式是不同的。

二 、MyISAM的索引

MyISAM的索引方式是“非聚集”索引。MyISAM索引文件和数据文件是分离的,索引文件仅保存数据记录的地址。MyISAM引擎使用B+Tree作为索引结构,叶节点的data域存放的是数据记录的地址

1. MyISam主索引

[caption id="attachment_1269" align="alignnone" width="300"]myisam-primary-index MyISAM表的主索引(Primary key)[/caption]

 

如图一共有三列,假设我们以Col1为主键,以col1构造B+树。B+树的叶子节点上保存的是该记录的地址,可以理解为该行数据的物理存储位置。

2. MyISam辅助索引

在MyISAM中,主索引和辅助索引(Secondary[......]

阅读全文

Tags: , ,

Comments { 0 }

Hash join算法原理

转载一篇介绍Oracle’ hash Join的文章,描述笔记详细。其实其他几种关系数据库中支持hash join的,其工作原理也都类似。

自从 oracke 7.3 以来, oracle 提供了一种新的 join 技术,就是 hash join 。 Hash Join 只能用于相等连接,且只能在 CBO 优化器模式下。相对于 nested loop join , hash join 更适合处理大型结果集。 Hash join 不需要在驱动表上存在索引。

一.? ?? ??Hash Join?概述

Hash join 算法的一个基本思想就是根据小的 row sources( 称作 build input ,我们记较小的表为 S ,较大的表为 B) 建立一个可以存在于hash area 内存中的 hash table ,然后用大的 row sources( 称作 probe inp[......]

阅读全文

Tags: , ,

Comments { 0 }