数据库表-索引篇

一、适合建立索引的场景

1.字段值唯一的字段适合建索引(MySQL主键具有唯一性,会自动建立唯一性索引)

2.经常出现在where条件中的字段适合建索引

3.经常需要进行order by的字段适合建索引

4.经常进行group by的字段适合建索引

5.distinct的字段适合建索引(原因:加索引了,相同的数据会放在一块,去重更快)

6.多表join时,适合对on后面的连接条件字段建立索引

7.前缀like适合建立指定长度的索引(alert table user add index(address(10)),只对地址的前10位建立索引)

注意:阿里巴巴强制varchar类型的字段建立索引必须指定索引的长度

8.散列度高的字段适合建立索引

索引的几点说明

①使用最频繁的字段放在联合索引的左侧

②多个字段都需要建立索引的情况下,建立联合索引的性能要比单独为每个字段建立索引好

③索引不是越多越好:原因1:索引维护需要额外的开销;原因2:索引太多,数据库在尝试使用索引的时候选择使用哪个索引的时间也就越长

二、不适合建立索引的场景

1.在where中使用不到的字段不要建立索引

索引是帮助快速定位数据的,起不到定位数据的字段建立索引,对筛选数据没有任何帮助

2.数据量小的表不要建立索引

没有索引的情况下,查询花费的时间可能比遍历索引的时间还要短,建立索引可能起不到优化效果

3.有大量重复数据的列不要建立索引

不但起不到明显的查询性能,反而会严重减低数据更新速度

4.避免对经常更新的表建立太多索引

更新数据的时候,也需要更新索引,更新效率会下降

  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值