为什么我们添加完索引后查询速度会变快?
①传统的查询方法,是按照表的顺序遍历的,不论查询几条数据,mysql需要将表的数据从头到尾遍历一遍
②在我们添加完索引之后,mysql一般通过BTREE算法生成一个索引文件,在查询数据库时,找到索引文件进行遍历(折半查找大幅查询效率),找到相应的键从而获取数据。
索引的代价
①创建索引是会产生索引文件的,占用磁盘空间
②索引文件是一个二叉树类型的文件,可想而知我们的dml(增删改)操作同样也会对索引文件进行修改,所以性能会下降
在哪些column上使用索引?
①较频繁的作为查询条件的字段应该创建索引
②唯一性太差的字段不适合创建索引(例如gender性别字段,尽管频繁作为查询条件)
③更新非常频繁的字段不适合作为索引
④不会出现在where子句中的字段不该创建索引