我正在用 php mysql 开发一个用户评论系统。实际上,我的第一个偏好是使用 user_id(Primary Key) 获取数据并将其插入 mysql,但在某些地方我需要使用 user_name(Unique Index) 从 mysql 获取数据并更新或插入其中。
我想问哪种方法最有效?如果在某些地方,我必须使用 user_name 会影响效率吗?
我正在用 php mysql 开发一个用户评论系统。实际上,我的第一个偏好是使用 user_id(Primary Key) 获取数据并将其插入 mysql,但在某些地方我需要使用 user_name(Unique Index) 从 mysql 获取数据并更新或插入其中。
我想问哪种方法最有效?如果在某些地方,我必须使用 user_name 会影响效率吗?
您在 user_id 和 user_name 上都有一个索引,因此它们都会很快,一般来说(因为您没有详细说明这两个字段中使用的类型),user_id 会更快,因为索引大小在逻辑上会更小比 user_name 字段 - 但你说的是微小的差异。
我可以认为 user_name 实际上是他们的登录名而不是他们的真实姓名吗?因为在真实姓名上具有唯一索引会因为冲突的高概率而出现问题。如果是这种情况,您是否考虑过散列名称然后将其用作索引?
您应该将user_id
其用作主键,而不是user_name
,但每当您尝试基于 插入或获取数据时user_name
,您必须user_id
在 where 子句中使用,因为我确信user_id
当有user_name
.