mysql - 我的表不需要主键,我应该使用一个吗?

标签 mysql database database-design

我有一个表来检查具有特定 ip 地址的用户是否对某个项目进行了评级,这些列:rates(ip,item_id,created_at) 我可以为这个表定义两个主键

1-主要(ip,item_id)

2-主(id)

但我真的不需要它们,因为该表需要没有连接没有更新,我应该定义主键吗? 我只能索引 item_id 和 ip 以提高性能,但不能索引主键。

最佳答案

查看 SELECTs 中的 WHERE 子句。这是一种查看需要索引的内容的快速且(非常)肮脏的方法。

你应该有 PRIMARY KEY。它必须是独一无二的。它可以是“自然”键——如果您不想要任何重复的 ip 值,那是一个很好的选择。如果您没有“自然”PK,则可以使用 AUTO_INCREMENT

你不能有两个PRIMARY KEY,但一个主键可以有两列。

Cookbook on building indexes .

关于mysql - 我的表不需要主键,我应该使用一个吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35998105/

相关文章:

php - 如何在有在线交易时向离线应用程序发送通知

android - 安卓应用数据库

MySQL存储过程插入验证

mysql - 用于存储十亿封电子邮件的数据库模式

database-design - 基于订阅的服务的数据模型

mysql - 哪个数据库管理器适用于 100Go 表?

文本中的 MySQL TRIM 空格

mysql - SQL 查询优化——真的没有什么可以改进的了吗?

sql-server - 在数据库中存储各种统计数据的最佳方法

php - 如何通过仅使用1个查询来组合这3件事: "check if ID is legitimate from other table",然后 "Insert"或 "Update"