重谈主键和索引

用了很多年的数据库 很多人可能连主键和索引都不会用,包括我在内

首先要区别索引有聚集索引和非聚集索引

主键可以是聚集索引也可以是非聚集索引,有些数据库默认把主键作为聚集索引

不是任何主键都适合作为聚集索引

举个简单的例子  自增列很适合做为聚集索引,因为物理顺序和自增列的顺序一致,试想,插入数据的时候,数据库是不是要省力的多?因为直接在最后面依次插入就可以了,但是有些时候,设计者可能不希望用自增列作为主键(对业务数据暴露的太裸露),当然可以再添加一列作为主键,将自增列作为聚集索引使用,这也是可以的,单如果没有自增列,比如用一个8位的随机数直接作为主键,那么这个主键还适合聚集索引么?

假如这个数据表需要经常插入数据,进行写操作,因为8位随机数是没有任何排序规则的,每次数据写操作的时候,数据库都要重新找到属于他的位置,进行插入,这个就类似于插队,很明显排队要比插队更省力。频繁的插队更消耗数据库的性能。

所以数据库的主键和索引你真的有认真思考过么?

 

转载于:https://www.cnblogs.com/njcxwz/p/10916324.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值