小编Phi*_*tor的帖子

在大分区MySQL表中使用GUID作为PK

我们有一个巨大的InnoDB表,有数亿行,只有3列:GUID,enum,smallint.所有查找都由GUID完成.

我们正在考虑将GUID作为PK并将其按BY键分区.

我们听说使用GUID作为PK是坏的,因为它的随机分布以及PK创建聚簇索引的事实.因此,以GUID的随机顺序存储行会增加碎片和页面拆分.

使用GUID作为PK的替代方法是创建代理自动增量密钥,并将其用作PK.但是,如果我们想通过GUID对表进行分区,那么GUID也必须是PK的一部分.此外,由于所有查询都是通过GUID完成的,因此我们需要一个额外的GUID索引.该索引实际上映射GUID-> PK,而如果我们使用GUID作为PK - 表本身映射GUID-> enum + small int?

所以我的问题是我们是否通过添加auto-inc PK并获得额外的GUID索引来获得任何收益?

谢谢,Philopator.

mysql indexing guid clustered-index

6
推荐指数
1
解决办法
797
查看次数

标签 统计

clustered-index ×1

guid ×1

indexing ×1

mysql ×1