InnoDB索引实现Myisam区别
来源:互联网 发布:安卓手机变电脑软件 编辑:程序博客网 时间:2024/06/08 10:53
InnoDB索引实现
虽然InnoDB也使用B+Tree作为索引结构,但具体实现方式却与MyISAM截然不同。
第一个重大区别是InnoDB的数据文件本身就是索引文件。从上文知道,MyISAM索引文件和数据文件是分离的,索引文件仅保存数据记录的地址。而在InnoDB中,表数据文件本身就是按B+Tree组织的一个索引结构,这棵树的叶节点data域保存了完整的数据记录。这个索引的key是数据表的主键,因此InnoDB表数据文件本身就是主索引。
如图是InnoDB主索引(同时也是数据文件)的示意图,可以看到叶节点包含了完整的数据记录。这种索引叫做聚集索引。因为InnoDB的数据文件本身要按主键聚集,所以InnoDB要求表必须有主键(MyISAM可以没有),如果没有显式指定,则MySQL系统会自动选择一个可以唯一标识数据记录的列作为主键,如果不存在这种列,则MySQL自动为InnoDB表生成一个隐含字段作为主键,这个字段长度为6个字节,类型为长整形。
第二个与MyISAM索引的不同是InnoDB的辅助索引data域存储相应记录主键的值而不是地址。换句话说,InnoDB的所有辅助索引都引用主键作为data域。例如,图11为定义在Col3上的一个辅助索引:
阅读全文
0 0
- InnoDB索引实现Myisam区别
- InnoDB和MyISAM索引实现
- MyISAM和Innodb索引的区别(转)
- myisam与innodb的索引区别
- MyISAM和InnoDB索引实现的不同
- MyISAM和InnoDB索引实现对比
- myisam和innodb索引实现的不同
- myisam和innodb索引实现的不同
- myisam和innodb索引实现的不同
- myisam和innodb索引实现的不同
- myisam和innodb 索引实现原理
- MyISAM和InnoDB索引实现对比
- <转>MyISAM和InnoDB的索引实现
- MyISAM和InnoDB的索引实现
- MyISAM和InnoDB索引实现对比
- myisam和innodb索引实现原理
- MyISAM和InnoDB索引
- MyISAM和InnoDB索引引擎的B+树索引实现
- 240. Search a 2D Matrix II
- python学习之指定脚本解释器
- 批处理实现畸形文件、文件夹创建、访问、重命名、删除
- 工作随感三小点
- C++之详解coredump
- InnoDB索引实现Myisam区别
- 文章标题
- mybatis中的#号和$号的区别
- uboot执行顺序main_loop
- Python爬虫天气预报(小白入门)
- Hadoop NameNode 高可用 (High Availability) 实现解析
- Docker:启动Redis镜像
- C 语言
- HTTP网络协议