我已阅读了大量答案,但尚未找到解释。我想知道如何在特定的表上正确设置索引。
我有关系表连接两个其他表并且还包含一些数据:
我想知道如何根据以下几点正确设置索引:
id
列是必需的(因为我使用的是需要id
主键的Laravel框架。)
room_id
,channel_id
和date
需要是唯一的,因为3一起代表该行。
room_id
和channel_id
是外键。
必须将date
列编入索引作为其常用搜索列。
我想出了这个,但我很确定它是多余的和错误的:
id
,room_id
,channel_id
。room_id
,channel_id
,date
。room_id
channel_id
date
其他问题:date
是否需要成为复合主键的一部分?
想知道正确设置主键,索引和唯一身份的热点。
答案 0 :(得分:1)
这就是我要做的就是满足你的需求:
id
room_id
channel_id
date
,room_id
,channel_id
说明:
id
是自动增量,因此对于PK来说就足够了。 room_id
位于首位,channel_id
和id
在PK中无用。date
开头,则可以将其用于日期搜索。因此,不需要单独的date
索引。