MySql中InnoDB引擎索引
来源:互联网 发布:js中有哪些事件 编辑:程序博客网 时间:2024/05/17 05:58
Mysql中InnoDB引擎的索引分两类,一类是一级索引(主键的同义词),一类是二级索引(非主键的索引)。两类索引都使用B+tree形式组织,但一级索引的叶子节点包含所以对应的整行信息,所有的查询最终都是通过一级索引完成,二级索引只包含二级索引对应的一级索引。所以直接使用一级索引比用二级索引快,因为少了一系列二级索引到一级索引的磁盘I/O。同时,使用主键查询时,这种数据组织方式也比数据和索引分开要快一次磁盘I/O操作。(MyISAM使用数据和索引分离的组织方式)
一级索引只有一个,毕竟主键最多只有一个,但二级索引可以有多个,因为一张表可以建立多个非主键索引。但每次查询只会选择一个索引。
MySql会按照以下规则建立一级索引:
- 如果定义了主键,那么MySql会选择主键作为一级索引;
- 如果没有定义主键,那么MySql会选择第一个定义了非空的唯一索引(UNIQUE AND NOT NULL)作为主键,并且作为一级索引;
- 如果没有定义主键也没有定义非空的唯一索引,那么MySql会隐式的生成一级索引,索引的列是MySql为每一行数据生成的行号。行号是一个6字节的数,按照插入顺序单调递增。
参考链接:
http://dev.mysql.com/doc/refman/5.0/en/innodb-index-types.html
0 0
- MySql中InnoDB引擎索引
- MySQL InnoDB引擎索引长度受限怎么办?
- mysql引擎InnoDB索引中的cardinality关键字
- mysql InnoDB引擎支持hash索引吗
- MySQL中InnoDB引擎--特点
- Mysql innodb引擎和myisam引擎 使用索引区别
- Mysql innodb引擎和myisam引擎使用索引区别
- Mysql (InnoDB引擎)聚集索引和辅助索引
- InnoDB引擎索引大观
- MySql中启用InnoDB数据引擎
- MySQL中innodb引擎分析(初始化)
- mysql中innodb引擎的锁问题
- mysql 索引长度tips innodb和myisam引擎
- MySQL · 引擎特性 · InnoDB 全文索引简介
- MySQL技术内幕-InnoDB存储引擎读写笔记(索引概述)
- MySQL InnoDB引擎的索引和存储结构
- MySQL中MyISAM引擎与InnoDB引擎性能简单测试
- MySQL中MyISAM引擎与InnoDB引擎性能简单测试
- jquery实现多选框全选、取消和反选,有实例,拿去直接可用
- Linux 下编译 VLC for Android
- Tomcat连接器运行过程(源码阅读)
- matlab 信号与系统(一)—— 上采样(Upsampling)和下采样(Downsampling)
- 【LeetCode】Remove Duplicates from Sorted List 解题报告
- MySql中InnoDB引擎索引
- struts2实现管理员和普通用户登陆时分别跳转到不同页面
- (python解析js)selenium结合phantomjs抓取js生成的页面
- hdoj1114
- 访问第三方服务
- JAVA数组排序——二分(折半)查找
- const常量与define宏定义的区别
- VLC架构及流程分析
- 测试您的DB2数据库:用JMeter测量性能