尝试谷歌搜索,但:
题:
从外部生成MySQL字段的顺序UID值的最佳方法,该字段必须可以表示为字符串.
原因:
从char [0]转发中搜索字段索引时,磁盘顺序/页面附加插入的通用顺序UUID-ish值,用于执行写入和读取速度的日期前缀.该列将被索引,但寻找最佳数据以增加索引读取和表写入性能而不是普通的UUID.
我最初的想法是在固定宽度的字段中附加或替换UUIDv4生成的字符串的某些部分(即[Unix纪元] [剩余的UUID4])的某些粒度(可能是填充的纪元)的日期,但我不确定这是否会有所需的页内/磁盘排序结果和索引搜索结果.一个例子是:
12904645950049bceba1cc24e80806dd
这些值必须独立于MysqL本身,因此使用UUID和时间戳而不是自动递增的某些变化.
任何知道MysqL索引内部的人都有任何建议(对于InnoDB表)?
艾登
最佳答案
可能有点offtopic,但看看Twitter’s snowflake.他们说这是:
原文链接:https://www.f2er.com/mysql/433579.html>(大致)时间有序(帮助大量避免昂贵的随机主键BTREE更新)
>可直接排序
>紧凑
更不用说其他功能(HA等).您既可以使用算法,也可以直接使用它.
整个UID只使用多达64位的空间,所以我猜测索引是非常有效的 – 见http://www.mysqlperformanceblog.com/2006/10/03/long-primary-key-for-innodb-tables/(一个反例).