首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySql UUID字节顺序

问MySql UUID字节顺序
EN

Stack Overflow用户
提问于 2019-01-27 18:10:27
回答 1查看 1.4K关注 0票数 3

我有一个MySql表,其中的主键是一个自动增量列,然后我还有一个带有惟一索引的binary(16)列,用于存储UUID。

MySqlConnector有一个用于GuidFormat的连接选项,在这个选项中,我在TimeSwapBinary16和LittleEndianBinary16之间搞不清哪一个是更好的选择以及为什么。

在插入、索引、在WHERE子句中使用binary(16)列进行选择等过程中,按特定顺序排列UUID字节是否会带来效率和性能方面的好处?

有人能解释一下这些吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-28 01:37:09

一般的原则是,以升序向索引插入新值会产生一个相对更有效的索引。

虽然MySQL的默认UUID格式包括从时间戳生成的字节,但它们不在UUID中的字节位置,这使得它符合“按升序插入”的目标。在MySQL 8.0中,他们引入了函数UUID_TO_BIN(),该函数具有重新排列字节的选项,以便在生成UUID值时,它们按时间戳排序。

TimeSwapBinary16连接器选项使用该选项,因此它更有利于索引插入性能。

如果您有兴趣,可以在这篇博客文章中展示无序和有序UUID之间的性能差异以及详细的基准测试:https://www.percona.com/blog/2014/12/19/store-uuid-optimized-way/

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

https://stackoverflow.com/questions/54386997

复制
相关文章

相似问题

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