什么是索引?
假设你是一个书籍爱好者,你有满屋子的书,以前呢你的书从来都是不按规矩放好的,而每次找书都要从头到为翻找,直到找到那本书weizhi
索引概述:
student表
id | score |
1 | 100 |
2 | 88 |
3 | 76 |
4 | 98 |
假设我们要查找col2为3的记录,在没有索引的时候:
是从上往下进行遍历这个列表
那么我们实际开发中,数据量比较大有成百上千数据那我们还要采取这个从上往下一次遍历的方法是不可取的,查询效率是相当慢,那这个时候索引就出来了
用这个方法去找就可以很快的找到3,那这就是我们的索引,索引就是一种数据结构,它的目的就是快速的查询我们的数据。
索引的优势和劣势
优势:
(1)类似于数据的目录索引,提高数据检索的效率,降低数据库的IO成本。
(2)通过索引列对数据进行排序,降低数据排序的成本,降低CPU的消耗。
劣势:
(1)实际上索引也是一张表,该表中保存了主键和索引字段,并指向实体类的记录,索引列也是占空间的。
(2)虽然索引大大提高了查询的效率,同时却也降低更新表的速度,如对表进行INSERT DELETE UPDATE。因为更新表时,Mysql不仅要保存数据,还要保存索引文件没戏更新添加了索引列的字段,都会调整因为更新带来的键值变化的索引后果。
索引的机构:初期了解一下就可以了