2013.12.17周二学习笔记

1.为什么用二叉树查找

 1 2 3 4 5 6 
如果要查找3 需要读3次  是线性查找


二叉树查找:如果是查找23   先找根节点 ,根节点是存在内存中的,根节点34,23比34小,则找左侧的节点,找到22,,23比22大,则找右侧的节点,找到23,每个节点需要读取一次这样找到23需要读3次,正常从1找到23需要23次,所以二叉树查找的效率要高,二叉树是有序的。

2.数据存取

一种是内存,内存的存取非常快,根据地址直接找到内存中的数据。

一种是磁盘,磁盘的的读取需要物理操作,效率很慢,所以之后的索引的优化主要是对IO次数的优化

3.B树与B+树

B+树是B树的升级版,拥有更多的子节点,更大的度,高度小,因此查找次数少,IO读取次数少,效率高。

B树的度是内部结点最小节点数。

BTree中一次检索最多需要h-1次I/O(根节点常驻内存)

B+Tree更适合外存索引,原因和内节点出度d有关。从上面分析可以看到,d越大索引的性能越好。

4.myisam与innodb两种存储引擎

myisam主键索引与辅助索引的效率相当,索引中存放的是数据的地址

innodb的数据文件就是索引文件,数据就存放在主键索引中

由于innodb数据存放在主键索引中,有辅助索引的情况下,需要先查找辅助索引对应的主键,再去通过主键查找数据,所以当有除主键以外的索引存在时,innodb的效率要低于myisam,也因为innodb的数据存放在主键索引中,所以innodb在按主键查找的时候效率高于myisam。有辅助索引存在的时候没有myisam效率高。

结论:如果是只按主键查找的,选择innodb存储引擎,如果需要按辅助索引查找的,选择myisam存储引擎。

重要公式:D的H次方-1=N

D是度   H是高度(层数)  N是数据量

数据量是固定的,D越大,H越小,H越小查找的次数越少,效率越高。

总结:上学的时候学过数据结构,但上学时的东西基本都记不住,现在重新研究一遍,终于搞明白索引的原理了。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值