数据库设计经验之--索引的设计

1、索引应该有足够的区分度,对区分度不大的列(例如枚举类型字段),不应该做索引(这时候应该考虑加上诸如时间范围这样的限制条件对记录进行筛选)。对一个表中最影响性能的列,可以考虑做聚簇索引。

2、小表少建索引或不建索引,可以加载到内存中访问。

3、索引字段一般为差异性较大、长度较小的类型,在这些字段上经常做一些选择性查询、排序、分组、关联操作。外键作为表关联字段,如果常作关联查询,可以建索引。

4、对于频繁更新及插入的数据表,定义索引不宜过多,同时可以考虑适当保留空闲索引空间,也就是说让数据不连续,提高索引键更新及插入效率。

5、办公系统中,对一个表可能有很多筛选项,且不是必选项。所以,倾向于在表上建立多个单键索引而不是复合索引。除非有明确的查询条件,(如证件类型、证件号)可建立复合索引。如果建复合索引,还要注意索引定义中字段的顺序。

6、如果索引字段空值很多,并且整表记录巨大,可以考虑建立附加表,通过附加表进行查询,再关联主表获取完整数据。

7、对于插入型的实时表,如果保证新记录插入到索引顺序(特别是聚簇索引)的最后面,对性能也有一定的提升。

8、对实时性要求高的表,建索引时必须谨慎,每建一个索引都要体现它的价值。索引最终要建得不多不少。

9、设计表索引时,应考虑到应用场景,并在上线后跟进检查;数据库处理发生变化时,应对现有场景进行检查。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值