1.简述索引的概念与作用
索引:是根据表中一列或若干列按照一定顺序建立的列值与记录行之间的对应关系表
作用:在列上创建了索引之后,查找数据时可以直接根据该列上的索引找到对应行的位置,从而快速的找到数据
2.索引的好处以及可能带来的弊端
索引的好处:
1、索引能够提高数据检索的效率,降低数据库的IO成本。
2、索引还有一个非常重要的用途,就是降低数据的排序成本。
每个索引中的索引数据都是按照索引键值进行排序后存放的,所以,当我们的query语句中包含排序分组操作的时候,如果我们的排序字段和索引字段刚好一致,MySQL Query Optimizer就会告诉mysqld在取得数据后不用排序了。分组操作没办法直接利用索引完成,但是分组操作是需要先进行排序后才分组的,所以如果Query包含这些操作,那么分组操作就省去了排序的过程。
排序分组操作主要消耗的是我们的内存和 CPU 资源,如果我们能够在进行排序分组操作中利用好索引,将会极大的降低 CPU 资源的消耗。
索引的弊端:
1、需要增加IO和调整索引所计算的量。索引占用存储空间,随着table数据里增长,索引数据量也会增长,带来存储空间的消耗。
3.索引有哪几类?简述各类索引的特点
(1)普通索引index:最基本的索引类型,没有唯一性之类的限制
(2)唯一性索引unique:基本和普通索引类似,但是索引列的所有值都只能出现一次,即必须是唯一的
(3)主