当前位置: 首页 > 图灵资讯 > java面试题> 金三银四精选java面试题-使用索引一定能提升效率吗?(什么时候适合创建索引,什么时候不适合创建索引?)

金三银四精选java面试题-使用索引一定能提升效率吗?(什么时候适合创建索引,什么时候不适合创建索引?)

来源:图灵教育
时间:2024-01-08 13:12:43
 

使用索引一定能提升效率吗?(什么时候适合创建索引,什么时候不适合创建索引?)

 

答案是不一定,任何事物我们都应该辩证的看,知道其运行逻辑从而利用其优点,尽量避开它的缺点。在上面我们已经和大家介绍了过了索引带来的优缺点,那接下来就和大家分享几个建索引的提示。

 

  • 对于查询中使用的少的字段尽量不要创建索引,创建索引是有成本的,空间占用、创建和维护成本、增删改效率降低。
  • 对于数据密度小的列也不建议创建索引,因为InnoDB中索引的B+树所决定的,你能带来的效率提升非常有限。(但是也有例外,举个例子枚举值(1,2,3),头两个占比百分之1%,第三个占比99%,并且头两个搜索占比比第三个高很多,那么是可以建议加索引的)。InnoDB的辅助索引是存在回表的,如果数据密度过小,那么性能可能还不如全表扫。像上面这种场景具有特殊性,也说明一个道理,在大多数场景下建议可能适用,但是也有不适用的时候,我们不要把这种建议当作铁律