易学:
什么是索引:
根据算法规则重新把表的数据排序,生成一个新的有序的数据结构,存储到磁盘中,生成的数据结构就叫做索引。
索引数据结构类型:
聚簇索引:会保存一整行数据,
非聚簇索引:会保存某些索引字段和该行数据的标识
怎么使用:
根据表的字段去创建索引,
查询数据的时候,将索引字段作为where条件或者查询字段,自动去索引的数据结构里面根据算法规则查询数据。
有什么作用:
减少一些不必要的查找,减少Io读取的时间,提高查询效率;
副作用:
增删改表数据的时候同时会维护索引的数据结构,降低更新表的效率,占CPU,数据量越大,创建和维护索引时间也会增加,降低了维护的速度。
索引也需要存储,占磁盘空间。
起到作用的点:
数据结构是有规律的,通过规律查找数据。
详细:
索引建立在于表字段上
根据算法规则生成的数据
通过特定的算法规则把某张表里的每一行数据
根据这张表的某些指定的字段再重新排好顺序,
或者通过算法规则记录每一行数据的位置,
生成新的数据结构并保存到磁盘空间,
(保存规则:聚簇索引下会保存一整行数据,
非聚簇索引则会保存某些索引字段和这行数据的标识)
这些指定的字段叫索引字段,
当查询数据的时候,
可以根据索引字段去新的数据结构里
快速定位到某一行或者某个范围的数据。
而我们把根据算法规则生成的新的数据结构叫做索引。
一张表,字段与字段之间可以进行组合索引,
表与表之间不可以共享索引,但是如果用于关联表查询,所用到的关联字段是索引字段,
那所关联的表就都可以自己通过自己的索引字段去进行索引查询。
每个索引都是一个单独的数据结构,
定义:
1)、索引就是根据算法规则生成的数据结构。
2)、相当于书的目录。
区别:
没有使用索引,是使用顺序查找法按照存储的顺序依次向下查找(整表扫描)。
使用索引就是根据索引某个特定的规则形成的数据结构去查询数据,可以过滤掉一些没有必要的数据。
作用:
1、查询数据速度快。
2、降低数据库IO的次数(磁盘读取文本到内存的时间消耗)。
3、根据索引排序,降低数据库排序的成本。
4、降低CPU的消耗(数据加载到内存中的计算的过程,比如排序)。
5、比如唯一索引,可以保证数据的唯一性,
6、在表与表之间的连接中,提高关联的查询速度。
缺点:
1、索引的增改需要耗费一定的CPU时间,如果对已有数据结构的表操作索引,数据量越大,索引的增改所花费的时间更长。
2、对创建索引的表,进行增改数据时,需要对索引的数据结构通过CPU进行重新计算,数据量越大,操作表的速度越慢。
3、索引需要耗费一定的磁盘空间,用来存储索引数据。
存储结构:
索引也是一张表,
保存了索引字段.和定位到表的信息
存储位置:
磁盘空间。
索引结构演变:
二分查找法:又叫折半查找法。
顺序查找法:排好顺序,依次往下递增
二叉树:取出一个数据作为中间数,小的放到中间数的左边,大的放到中间数的右边,然后每个节点只有左右两个节点(这才叫做二叉树),依次往下排序。