我想将以下数据存储在MySql数据库中(用于通知的数据):
VARCHAR(10)
知道列type_info根据type列的内容确定其内容,其中有4种情况:
如果类型=3
F 225),如果类型=2
备注:
来获取数据。
因此,我的问题是:为了提高查询SELECT * FROM table WHERE date > dateValue的速度,我是保持表的设计不变,还是有效率更高的设计?
如果我将表按类型的列划分为4个表,它会更好吗?
通知表:
id/from_id/to_id/type/dateType_1表:
notfication_i/id1Type_2表:
notfication_i/id1/id2Type_3表:
notfication_i/id1/id2/id3注意:只考虑提高以上查询速度的最佳表设计。
这个设计合适吗?

谢谢:)
发布于 2020-07-01 05:21:22
简单的答案--将多个数据项嵌入到一个列中是错误的做法。由于您的数据包含多个不同表中的外键列表,因此应创建单个列,每个潜在外键对应一个列。
每个列都有自己的索引,允许快速查找每种数据类型的数据,而不必使用字符串函数操作数据。
拥有3个潜在的空列的开销可以忽略不计。
https://stackoverflow.com/questions/62651217
复制相似问题