0%

Mysql进阶--Mysql索引分析

索引的官方定义:索引(Index)是帮助Mysql高效获取数据的数据结构,由此得到索引的本质:索引是一种排好序的快速查到数据结构

理解:存储引擎用于快速查找记录的数据结构

索引的目的:在于提高查询效率

在数据之外,数据库系统还维护者满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构,就是索引,

一般来说索引本身也很大,不可能全部存储在内存中,因此索引文件的形式存储在磁盘上,

我们平常所说的索引,如果没有特别指明,都是指B树(多路搜索树,并不一定是二叉的)结构组织的索引,其中聚集索引、次要索引、覆盖索引、复合索引、前缀索引、唯一索引默认都是使用B+树,统称索引,(还有其他索引,例如哈希索引)

索引的优势:

​ 1 提高数据检索的效率,降低数据库的IO成本;

​ 降低数据排序成本,降低了CPU的消耗;

​ 索引两大特点:查找快,排序快,也即建的索引将会影响到sql的部分:第一部分:就是where条件后面这部分的条件约束是否用到索引,这部分就是负责查到的条件过滤,第二部分:索引会影响到where后面的查找以及order by后面的排序

索引的劣势:

​ 索引虽然大大提高了查询速度,但是同时会降低更新表的速度,因为更新表时,Mysql不仅要保存数据,还要保存一下索引文件每次更新添加了索引列的字段,都会调整因为更新所带来的键值变化后的索引信息。

​ 索引只是提高小笼包的一个因素,如果Mysql有大数据量的表,就需要花时间研究建立最优秀的索引,或优化查询

----------本文结束感谢您的阅读----------