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

标签 php mysql performance

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

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

最佳答案

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

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

关于php - 我应该使用 user_id (主键)还是 user_name (唯一索引)从 Mysql 插入和获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15335941/

相关文章:

mysql - 获取mysql表中的最后一条记录

sql - 如何调整表包含 30,000 多行的 7 表连接 MySQL 计数查询?

javascript - 将一个函数绑定(bind)到每个对象是否比一次将一个函数绑定(bind)到所有对象更糟糕?

php - 如何从数据库mysql中选择待处理的好友请求

php - 如何从 Webhook 获取数据以存储在数据库中?

php - 从 PHP 中的字符串替换此十六进制字符

MySQL 没有 root/ super 用户

PHP 将文件夹从 ftp 上的另一个位置复制到新目的地 ø

php - 为什么将 count() 添加到我的 sql 查询中会使其无法工作?

mysql - 未使用的数据库会以任何方式损害 MySQL 服务器性能吗?