mysql主键为guid_闲谈系列之一——数据库主键GUID

昨日一个行内兄弟由于工作调动要派到某二线城市工作,虽然有高额工资和补助的诱惑但也难以释怀离京蛋蛋的忧桑,约好晚上到老聚点道个别、主要是聊(chui)聊(chui)前(niu)程(bi),几瓶夺命大绿棒子下肚,这货问起我现在项目的情况(操蛋的技术控!),我简单的说了一下架子和数据库,果然在数据库主键上出现了分歧,在他心里主键就是应该是妥妥的自增整型,对于我的GUID无法容忍,并指出GUID不连续、效率低下、blablabla,最后我说了一下我的解决方案总算得到了一定程度的肯定吧。。。

对于程序猿来说,数据库设计是永恒的话题,而主键作为数据库的重要元素是却并未得到应有的重视。本文仅对自增整型和GUID做简单对比,其他复合式、时间序列式等形式的主键暂不考虑。

主键的定义(From 百度知道)

主键:表中经常有一个列或列的组合,其值能唯一地标识表中的每一行。这样的一列或多列称为表的主键,通过它可强制表的实体完整性。当创建或更改表时可通过定义 PRIMARY KEY 约束来创建主键。一个表只能有一个 PRIMARY KEY 约束,而且 PRIMARY KEY 约束中的列不能接受空值。由于 PRIMARY KEY 约束确保唯一数据,所以经常用来定义标识列。

对自增量主键和GUID主键进行优劣对比(欢迎补充)

自增量主键

优势:

数据库自动生成,无需在业务中做任何管理

节省内存空间

数据写入和检索时效率较高

劣势:

数据合并、迁移时易出现问题,这一点的重要性因具体项目而定。

GUID主键

优势:

能在业务层就知道目标ID,

你可能感兴趣的:(mysql主键为guid)