数据库主键生成和索引建立的注意点

1. 主键的生成


对于目前来说,主键的生成方式很多,有自增,UUID,snowflake....今天我只谈论一下自增长主键的不好之处,特别是多于数据安全性要求比较高的系统。

大家都知道主键的生成需要满足两大核心需求:

(1)全集唯一

(2)趋势有序


对于单库单表来说上面的两大核心需求自增主键都满足,单是对于多库多表上面两个就不满足了。不过我今天想说的不是这两需求,而是关于主键安全性的需求。

众所周知,数据对于当今大多数企业来说就是其生命,所以数据的安全就显得非常的重要,所以在做设计时要考虑数据的泄露问题。对于自增长的主键就存在数据泄露的风险,

对于大部分的数据库操作,我们大多都是根据主键进行增,删,改,查的,所以主键是很容易泄露的,并且泄露后操作者很容易根据主键的自增特性去猜测到数据库中的数据的,

如果程序写的不是很完善,就很容易将数据库中的数据暴露给外部无权查看人员,所以在使用自增属性时一定要考虑数据的安全级别和程序的完备性。


2. 索引的建立

所以一般是用于增加查询效率的,所以一般是在进行查询时考虑建立索引的。

一般情况下,我们是根据我们所写的程序来建立索引的,即程序的入参,但在这儿我更想提的是我们还要根据出生产事故时排错需要建立索引,即排错时一般用哪些字段去查询,我们就应该考虑是否应该给他们也加上索引。


以上仅仅是个人看法,不对之处,请指正。



你可能感兴趣的:(数据库主键生成和索引建立的注意点)