什么时候用索引

1.原则上来说:一个表需要跟别人做连接的字段都要加索引,比如表A 的A1,A2,A3需要跟其他表发生连接,那么3个字段都要加索引

2.经常用来查询的字段,模糊查询的字段不用, 其他精确查询且字段重复率低的最好需要.比如 varchar字段

3.如果一个表经常用这个字段进行条件查询,这个字段是不是要加索引,要看这个字段的值是什么场景的,如果是枚举的,值是固定的几个,就没多大意义,如果是各式各样的,比如 varchar(100)里面的值重复很少,而且查询不是以like()进行 那么可以考虑加一加.

4.Mysql中Like查询 keyword%,走索引 %keyword%不走索引

5.比如用户名,创建时间,状态,很多常用的条件,就可以尝试建组合索引,注意Where顺序要一样,组合索引,要有组合字段被检索的场景才有用

6.数据重复多的话用位图索引

7.索引多了的表,不建议物理删除数据,最好逻辑删除,索引多了维护起来累,还有,建议索引不要跟数据在一个表空间(Oracle)

8.只要用索引就会拖慢插入 更新的速度,所以自己权衡好

9.每个表不超过三个索引,并不是建的越多性能越好,乱建索引会导致查询慢,具体请看执行计划

10.Oracle高版本按照CBO来优化的,如果CBO觉得不走索引快,那么你建再多的索引都没有用.

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页