一索引的基础
1.1定义
索引是对数据库表中一列或多列的值进行排序的一种结构。本质上,是基于空间换时间的一种思路的实现。
常见的数据结构中,哈希表和二叉平衡树的查找效率分别是O(1)和O(logn),是效率最快的两个,MySQL也毫不意外的使用了这两种数据结构来做索引。MySQL索引的数据结构有两种选择,B+Te和Hash。
1.优点
1..1提升检索效率
1、提高数据检索效率,降低数据库的IO成本;
、降低数据排序成本,降低了CPU的消耗。
1.缺点
1..1更新表速度降低
索引大大提高了查询速度,同时却降低更新表的速度。
MySQL不仅要保存数据,还要保存一下索引文件每次更新添加了索引列的字段,都会调整因为更新所带来的减值变化后的索引信息。
1..增加空间占用
索引也是一张表,该表保存了主键与索引字段,并指向实体表的记录,所以索引列也是要占用空间的。
1.生活中索引的应用
楼层索引
菜鸟驿站
图书目录索引
1.索引的分类
1..1普通索引
1、语法
cateindex索引名on表名(字段名);
.7版本InnoDB存储引擎,单表最大列,最多包含6个索引,联合索引最多16列。