我有一个 users
包含以下字段的表, id, username
是的 Id
是用主键自动递增的,我在想我是否应该 username
作为主键。
我还有一张table, audit_results
将用户名作为 users
table
决定下列哪种关系(users表中将有数百万个用户)更快的决定因素是什么(假设将来会有复杂的连接查询)。 audit_results.username
(与user.username相关)或 audit_results.id
(与user.id相关)
使用varchar或int datatype作为主键有什么区别吗?
1条答案
按热度按时间1yjd4xko1#
varchar(400)
-最多400个字符,每个字符由一个字节(8位)表示,因此最多可以有3200位。int(11)
-根据这个,int
总是四个字节(32位)。加入时,sql必须比较特定的值。
我认为很明显,一般来说哪一个会执行得更快(有多少位可以比较)。