我计划使用客户端提供的 UUID 作为 MySQL 数据库中多个表的主键。
我遇到了将 UUID 存储在 MySQL 数据库中的各种机制,但没有什么可以将它们相互比较。这些包括存储:
- 二进制(16)
- 字符(16)
- 字符(36)
- VARCHAR(36)
- 2 x 大整数
有没有更好的选择,这些选项在以下方面如何相互比较:
- 存储大小?
- 查询开销?(索引问题、连接等)
- 从客户端代码插入和更新值是否容易?(通常是通过 JPA 的 Java)
根据您运行的 MySQL 版本或存储引擎是否有任何差异?我们目前正在运行 5.1,并计划使用 InnoDB。我欢迎任何基于尝试使用 UUID 的实践经验的评论。谢谢。