MySQL Char()或其他Field的顺序UID集生成

前端之家收集整理的这篇文章主要介绍了MySQL Char()或其他Field的顺序UID集生成前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

尝试谷歌搜索,但:

题:
从外部生成MySQL字段的顺序UID值的最佳方法,该字段必须可以表示为字符串.

原因:
从char [0]转发中搜索字段索引时,磁盘顺序/页面附加插入的通用顺序UUID-ish值,用于执行写入和读取速度的日期前缀.该列将被索引,但寻找最佳数据以增加索引读取和表写入性能而不是普通的UUID.

我最初的想法是在固定宽度的字段中附加或替换UUIDv4生成的字符串的某些部分(即[Unix纪元] [剩余的UUID4])的某些粒度(可能是填充的纪元)的日期,但我不确定这是否会有所需的页内/磁盘排序结果和索引搜索结果.一个例子是:

12904645950049bceba1cc24e80806dd

这些值必须独立于MysqL本身,因此使用UUID和时间戳而不是自动递增的某些变化.

任何知道MysqL索引内部的人都有任何建议(对于InnoDB表)?

艾登

最佳答案
可能有点offtopic,但看看Twitter’s snowflake.他们说这是:

>(大致)时间有序(帮助大量避免昂贵的随机主键BTREE更新)
>可直接排序
>紧凑

更不用说其他功能(HA等).您既可以使用算法,也可以直接使用它.

整个UID只使用多达64位的空间,所以我猜测索引是非常有效的 – 见http://www.mysqlperformanceblog.com/2006/10/03/long-primary-key-for-innodb-tables/(一个反例).

原文链接:https://www.f2er.com/mysql/433579.html

猜你在找的MySQL相关文章