索引
索引是表的目录,在查找内容之前可以先在目录中查找索引位置,以此快速定位查询数据
类似于字典中的目录,查找字典内容时可以根据目录查找到数据的存放位置,然后直接获取即可
优缺点
作用是提高对表中数据的查询速度
创建和维护索引需要耗费时间,会减慢写入速度
作为索引的字段要求
越小的数据类型通常更好
简单的数据类型更好
尽量避免NULL ----含有空值的列很难进行查询优化
不适合创建索引场景
查询中很少使用或者参考的列
只有很少数据值的列
定义为text, image和bit数据类型的列
修改性能远远大于检索性能
什么字段可以适合创建索引
1、表的主键、外键必须有索引;
2、数据量超过300的表应该有索引;
3、经常与其他表进行连接的表,在连接字段上应该建立索引;
4、经常出现在Where子句中的字段,加快判断速度,特别是大表的字段,应该建立索引,建立索引,
一般用在select ……where f1 and f2 ,我们在f1或者f2上建立索引是没用的。只有两个都有索引才能有用
5、经常用到排序的列上,因为索引已经排序。
6、经常用在范围内搜索的列上创建索引,因为索引已经排序了,其指定的范围是连续的
7、经常用到搜索的列上,可以加快搜索的速度
注意
全文本搜索索引
索引方法 btree 可以用于 > < =查询 ,如果查id=1000的数据 建立索引后 二分查找最多13次就可以查出相应的数据
hash 不能做order by排序 不能做 用like模糊查询
参考优化文章
网友评论