索引是什么?为什么要给字段创建索引?
索引相当于一本字典的目录,有了索引可以方便我们对数据的查询,可以提高查询的效率。mysql中默认对表查询为全表查询,即从上往下一条一条比对。如果给字段创建索引,能够帮助我们快速找到查询目标对应所在表中的物理位置,从而提高查询效率。
索引也会有失效性,比如检索字段使用模糊查询(以%号开头的),或者使用or进行筛选查询的要求or两边的检索的字段都要建立索引才会生效,否则进行全表查询。
建立索引也是需要花费磁盘空间的,不是所有情况都适合建立索引
1.数据量少的情况不建议建立索引
2.字段很少用来查询不适合建立索引
3.字段唯一性低的不适合建立索引
4.dml操作多情况不适合建立索引,因为对表进行dml操作,对应的索引表结构也会进行改变重新排序,会影响效率