首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用timestamp+ guuid的主键

使用timestamp+ guuid的主键
EN

Stack Overflow用户
提问于 2020-08-07 17:26:06
回答 2查看 48关注 0票数 0

我有很大的数据,如果我使用epoc+guid和guid+epoc作为主键,是否会在索引性能上有所不同,因为epoc是排序的。

EN

回答 2

Stack Overflow用户

发布于 2020-08-07 17:32:30

严格地说,主键是一个逻辑概念,而不是一个物理概念,但它通常是使用索引(这是一个物理概念)实现的。在InnoDB上,该索引将影响数据的存储顺序。这意味着在写入表时,如果主键值没有整齐地附加到表的末尾,它将不得不按照主键的顺序重新排序数据。

因此,只要epoc+guid反映了将数据写入磁盘的时间,那么使用guid+epoc应该比使用epoc快得多。如果epoc是其他值--商业交易日期、出生日期等等--区别就更难预测了。

由于GUID保证是唯一的,我不知道您为什么要拥有guid+epoc。

票数 1
EN

Stack Overflow用户

发布于 2020-08-08 05:29:27

INSERT:guid+epoc会稍微慢一些。当表的大小超过buffer_pool的容量时,它会变得很慢。

SELECT:如果您倾向于只访问“最近”的数据,那么epoc+guid的速度会快得多。(“引用的位置”)

如果您使用“类型1”UUID并混洗比特,那么您将在单个字段中获得这两个特性(唯一性和时间排序)。(越小越好。)更多信息:http://mysql.rjweb.org/doc.php/uuid此外,MySQL 8也具有相同的功能。

要进一步讨论,请提供数据类型、数据大小和插入/选择/更新/删除的类型。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63298935

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档