索引的创建时机

一 哪些情况适合建索引

 主键自动建立唯一索引

 频繁作为查询条件的字段应该创建索引

例如:银行系统的账号,电信系统的手机号,微信系统的微信号。

 查询中与其它表关联的字段,外键关系建立索引 

例如:员工系统的员工表的 departmentId 字段。

 单键/复合索引的选择问题

复合索引性价比更高。 

 查询中排序的字段,排序字段若通过索引去访问将大大提高排序速度 

order by 后的字段考虑建索引

 查询中统计或者分组字段

group by 后的字段考虑建索引

二 哪些情况不适合建索引

 表记录太少 

 经常增删改的表或者字段

索引提高了查询速度,同时减低更新表的速度,如对表进行 insert、update、delete操作。因为更新表时,Mysql 不仅要保存表数据,还要保存一下索引文件。

 Where 条件里用不到的字段不创建索引 

 过滤性不好(太多重复)的字段不适合建索引

数据重复且平均的表字段,为它建立索引没有太大的实际效果。

假如一个表有10万行记录,有一个字段A只有T和F两种值,且每个值的分布概率大约为50%,那么对这种表的A字段建索引一般不会提高数据库的查询速度。

索引的选择性是指索引列中不同值的数目与表中记录数的比值。如果一个表有2000条记录,表索引列有1980个不同的值,那么这个索引的选择性就是1980/2000=0.99。

一个索引的选择性越接近1,这个索引的效率就越高。

例如:国籍这个字段,性别这个字段就没必要建立字段。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值