zoukankan      html  css  js  c++  java
  • 重谈主键和索引

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

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

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

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

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

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

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

  • 相关阅读:
    从书上学的东西(顺带总结一发)
    网上讲的好的知识点汇总
    土地征用题解(兼斜率优化详解)
    Blocks题解(区间dp)
    高精度模板汇总
    动态规划总结
    异或序列(题解)(莫队)
    小Z的袜子(题解)(莫队)
    小B的询问(题解)(莫队)
    凸包模板——Graham扫描法
  • 原文地址:https://www.cnblogs.com/njcxwz/p/10916324.html
Copyright © 2011-2022 走看看