聚簇索引、非聚簇索引、覆盖索引
2016-08-25 16:31
309 查看
http://blog.csdn.net/arkblue/article/details/26395959
1 聚簇索引:clustered index 其实数据存储结构,索引和记录(全部)内容保存同一个结构中。“聚簇”就是索引和记录紧密在一起,分开就不是聚簇索引了,所以一张表只能有唯一的聚簇索引。附带问,能有多少二级索引呢?为什么?
2 非聚簇索引:secondary index ,叶子节点保存了主键值,要定位记录还要再查一遍聚簇索引。
3 覆盖索引:覆盖索引是指索引的叶子节点已包含所有要查询的列,因此不需要访问表数据(回表~~有学个名词,查询聚簇索引)
查找时能不能直接定位:聚簇索引的叶节点就是数据节点,而非聚簇索引的页节点仍然是索引检点,并保留一个链接指向对应数据块。
物理排序:聚簇索引对数据进行物理的排序,非聚簇索引不对数据进行物理排序
参考追风刀这个,实例分析聚簇索引不一定比非聚簇索引快~~~:
聚簇索引、非聚簇索引、覆盖索引 例子:http://csrd.aliapp.com/?p=406#more-406
覆盖索引:http://blog.csdn.net/dbanote/article/details/16822687
使用聚簇索引导致了全表扫描,加载每一页数据,使用非聚簇索引的sql语句使用范围查询缩小了范围。
一些DBMS允许用户指定聚簇索引,但是MySQL的存储引擎到目前为止都不支持。InnoDB对主键建立聚簇索引。如果你不指定主键,InnoDB会用一个具有唯一且非空值的索引来代替。如果不存在这样的索引,InnoDB会定义一个隐藏的主键,然后对其建立聚簇索引。
1 聚簇索引:clustered index 其实数据存储结构,索引和记录(全部)内容保存同一个结构中。“聚簇”就是索引和记录紧密在一起,分开就不是聚簇索引了,所以一张表只能有唯一的聚簇索引。附带问,能有多少二级索引呢?为什么?
2 非聚簇索引:secondary index ,叶子节点保存了主键值,要定位记录还要再查一遍聚簇索引。
3 覆盖索引:覆盖索引是指索引的叶子节点已包含所有要查询的列,因此不需要访问表数据(回表~~有学个名词,查询聚簇索引)
查找时能不能直接定位:聚簇索引的叶节点就是数据节点,而非聚簇索引的页节点仍然是索引检点,并保留一个链接指向对应数据块。
物理排序:聚簇索引对数据进行物理的排序,非聚簇索引不对数据进行物理排序
参考追风刀这个,实例分析聚簇索引不一定比非聚簇索引快~~~:
聚簇索引、非聚簇索引、覆盖索引 例子:http://csrd.aliapp.com/?p=406#more-406
覆盖索引:http://blog.csdn.net/dbanote/article/details/16822687
使用聚簇索引导致了全表扫描,加载每一页数据,使用非聚簇索引的sql语句使用范围查询缩小了范围。
一些DBMS允许用户指定聚簇索引,但是MySQL的存储引擎到目前为止都不支持。InnoDB对主键建立聚簇索引。如果你不指定主键,InnoDB会用一个具有唯一且非空值的索引来代替。如果不存在这样的索引,InnoDB会定义一个隐藏的主键,然后对其建立聚簇索引。
相关文章推荐
- 改进型先根遍历算法
- 【洛谷 1054】[NOIP2005] 等价表达式
- sfw 强悍的附件上传功能 -- 一周从无到有开发一个完整的企业站
- 用HttpGet和HttpClient网路请求数据
- Servlet学习资料
- [MySQL]mac修改root默认密码
- 使用GDI技术创建ASP.NET验证码
- 今天我哥们结婚 -- - 总结: 结婚真麻烦 。。。
- mac下升级ruby环境版本
- [ActionScript 3.0] AS3.0 涂鸦及擦除功能,撤销重做步骤记录实例
- ThinkPHP教程_PHP框架之ThinkPHP(六)【实例化模型、模型命名和获取字段】
- 弟子规
- NOI2003 矩阵游戏
- 记开发组同事jackchen离职
- 最短路径与Floyed算法
- IE 中document.getElementsByName
- HTTP Session和Cookie工作原理
- 无语的算法--牛X的QQ [QQ号算年龄]
- 线程(1)——操作系统和线程原理
- 301转向