MySQL InnoDB 索引_MySQL

php中文网
发布: 2016-06-01 13:39:19
原创
1220人浏览过

bitsCN.com

B+树索引

b+树索引在db中有一个特点就是高扇出性,一般在db中b+树的高度在2-3层左右,也就意味着只需要2-3次的io操作即可。而现在的磁盘每秒差不多在100次io左右,2-3次意味着查询时间只需0.02-0.03秒。

聚集索引

InnoDB存储引擎表是索引组织表,即表中数据安装主键顺序存放。而聚集索引就是按照每张表的主键构造一颗B+,并且叶节点存放着整张表的行记录数据,因此也让聚集索引也是索引的一部分。

实际的数据页只能按照一颗B+树进行排序,因此每张表只能拥有一个聚集索引。在很多情况下,查询优化器非常倾向于采用聚集索引,因为聚集索引能够让我们在索引的叶节点上直接找到数据。

辅助索引

对于辅助索引(也称非聚集索引),叶节点不包含行的全部数据。叶节点除了包含键值以外,每个叶节点中的索引行中还包含了一个书签,该书签用来告诉InnoDB存储引擎,哪里可以找到与索引相对应的行数据。因为InnoDB存储引擎是索引组织表,因此InnoDB存储引擎的辅助索引的书签就是相应行数据的聚集索引键。

什么时候使用B+树索引

一般的经验是对于访问表中很少一部分行时,使用B+树索引才有意义。而对于像性别,地区,类型等字段,它们可取值的范围很小(低选择性),一般不推荐使用B+树索引;反之,如果某个字段的取值范围很广,几乎没有重复(高选择性),则此时使用B+树索引是最合适的,例如email字段,在一些应用中通常都不允许重复出现。

因此,当访问高选择性字段并从表中取出很少一部分行时,对这个字段添加B+树索引是非常有必要的。但是如果出现了访问字段是高选择性,但是取出的行数据占表中大部分的数据时,这时MySQL数据库就不会使用B+树索引了。

Sveil开源商城
Sveil开源商城

Sveil开源商城是专业和创新的开源在线购物车的解决方案,是基于osCommerce 3 alpha 5 独立开发的项目。环境为PHP+MYSQL,使用了先进的AJAX技术和富互联网应用(RIA)的框架ExtJS,由Sveil.com提供重要的可用性改善及与网站交互界面速度更快,更高效。VERSION 1.0--修复bug1、网站在维护2、当搜索引擎被激活,与我们联系功能不起作用。3、当SEO被激

Sveil开源商城 6
查看详情 Sveil开源商城

文章参考:

 

 

 

 

bitsCN.com
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号