0

我正在用 php mysql 开发一个用户评论系统。实际上,我的第一个偏好是使用 user_id(Primary Key) 获取数据并将其插入 mysql,但在某些地方我需要使用 user_name(Unique Index) 从 mysql 获取数据并更新或插入其中。

我想问哪种方法最有效?如果在某些地方,我必须使用 user_name 会影响效率吗?

4

3 回答 3

1

您在 user_id 和 user_name 上都有一个索引,因此它们都会很快,一般来说(因为您没有详细说明这两个字段中使用的类型),user_id 会更快,因为索引大小在逻辑上会更小比 user_name 字段 - 但你说的是微小的差异。

我可以认为 user_name 实际上是他们的登录名而不是他们的真实姓名吗?因为在真实姓名上具有唯一索引会因为冲突的高概率而出现问题。如果是这种情况,您是否考虑过散列名称然后将其用作索引?

于 2013-03-11T10:17:00.003 回答
0

您应该将user_id其用作主键,而不是user_name,但每当您尝试基于 插入或获取数据时user_name,您必须user_id在 where 子句中使用,因为我确信user_id当有user_name.

于 2013-03-11T10:16:46.547 回答
0

我们刚刚注意到我们的生产系统上有一个非常奇怪的事情。关键链接表上的唯一键被主键替换,性能显着提高!

参考 :

在这里

于 2013-03-11T10:24:37.260 回答