我有一个包含两列id
和uniqueId
的表格,uniqueId
是使用PHP TEXT
函数生成的uniqid
字段。出于安全/隐私原因,用户永远不会在客户端获得实际的id
。
因此,常见的情况是用户可以通过他们拥有的uniqueId从另一个表中请求更多详细信息或子字段。
我的问题是这个,特别是我有一个查询将在表中查找50-100个条目,使用uniqueId执行查找是否更快,类似55ea74bc12a661.02727647
,或者首先进行查询以找到原始ID(简单自动增量列),然后使用它执行查找?
答案 0 :(得分:2)
你有两个问题。
id
或uniqueId
)才能加入。步骤1:uniqueId也可以是Users
表的PRIMARY KEY。对于我的观点#2,它也可以有一个AUTO_INCREMENT
id。 (更多的是一分钟。)作为PK实现了N.B.长大了。
uniqueId VARCHAR(255) NOT NULL CHARACTER SET ascii, -- not TEXT, not utf8
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
PRIMARY KEY(uniqueId),
INDEX(id) -- Yes, auto_inc will work with this
这为您提供了从uniqueId
到id
的映射,以及第一个SELECT
上的用户基本信息。
第2步:现在,您将使用JOINing
id
到其他表格。或者使用SELECTs
单独id
。为什么不在任何地方简单地使用uniqueId?
id
要小得多 - 只有4个字节。对比uniqueId
- 最多257个字节。