先决条件为:
- 表中将有数十亿条数据。
- 表将拥有二级索引。
- 表的主键将是另一个表的外键。
- 表将具有大量数据(另一列可能是文本)。
主键必须是唯一的,因为我的数据库在多台机器之间进行复制,所以我选择UUID作为主键。
附注:空间也是一个问题,所以我认为Varchar(36)可能不是一个好的选择。
先决条件为:
- 表中将有数十亿条数据。
- 表将拥有二级索引。
- 表的主键将是另一个表的外键。
- 表将具有大量数据(另一列可能是文本)。
主键必须是唯一的,因为我的数据库在多台机器之间进行复制,所以我选择UUID作为主键。
附注:空间也是一个问题,所以我认为Varchar(36)可能不是一个好的选择。
我同意使用BINARY(16)
。相较于37字节,16字节更好。
但对于巨大的表来说,UUID是无望的低效率。(我假设你的十亿行表不适合内存)
我在http://mysql.rjweb.org/doc.php/uuid中讨论了这些问题以及更多问题。
CHAR(32)
,请记得为该列使用 ASCII
编码。 - YektaDev
uuid
。 - user330315