繁体   English   中英

我应该使用user_id(主键)还是user_name(唯一索引)从MySQL插入和获取数据

[英]Should I use user_id (Primary Key) or user_name (Unique Index) To Insert and Fetch Data From Mysql

我正在用php mysql开发一个用户评论系统。 实际上,我的首选是使用user_id(主键)来获取数据并将其插入mysql,但是在某些地方,我需要使用user_name(唯一索引)从mysql获取数据并进行更新或插入。

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

您在user_id和user_name上都有一个索引,因此它们都很快,通常来说(由于您没有提供这两个字段中使用的类型的详细信息),由于索引大小在逻辑上会更小,因此user_id会更快而不是user_name字段-但您说的是微小的差异。

我能不能说user_name实际上是他们的登录名,而不是他们的真实姓名-因为在真实的人名上具有唯一的索引会由于冲突的可能性很高而成为问题。 如果是这种情况,您是否考虑过对名称进行哈希处理,然后将其用作索引?

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

我们刚刚注意到我们的生产系统中发生了一件非常奇怪的事情。 关键链接表上的唯一键已替换为主键,并且性能得到了显着改善!

参考:

在这里

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM