我正在开发php mysql中的用户评论系统。实际上,我的第一个偏好是使用user_id(主键)来获取和插入数据到mysql,但在某些地方我需要使用user_name(唯一索引)从mysql获取数据并更新或插入其中。
我想问哪种方法最有效?如果在某些地方,我必须使用user_name才会影响效率?
答案 0 :(得分:1)
你在user_id和user_name上都有一个索引,所以它们都很快,一般来说(因为你没有给出这两个字段中使用的类型的详细信息)user_id会更快,因为索引大小会逻辑上小于user_name字段 - 但你说的是微小的差异。
我能否认为user_name实际上是他们的登录名而不是他们的真实姓名 - 因为由于碰撞的可能性很高,在真人姓名上有唯一索引会有问题。如果是这种情况,您是否考虑过散列名称,然后将其用作索引?
答案 1 :(得分:0)
您应该使用user_id
作为主键,而不是user_name
,但是当您尝试根据user_name
插入或获取数据时,您必须使用user_id
在where子句中,因为我确信当user_id
时必须有user_name
。
答案 2 :(得分:0)