首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在数据库中使用调整大小的列或拆分表

在数据库中使用调整大小的列或拆分表
EN

Stack Overflow用户
提问于 2020-06-30 06:04:59
回答 1查看 58关注 0票数 1

我想将以下数据存储在MySql数据库中(用于通知的数据):

VARCHAR(10)

  • from_id: VARCHAR(10)

  • to_id: VARCHAR(10)

  • type: int(2)

  • type_info:(本专栏中的问题)

  • date:时间戳

知道列type_info根据type列的内容确定其内容,其中有4种情况:

如果类型=3

  • =Id1/id2

  • (类型=4 type_info =Id1/id2

F 225),如果类型=2

  • =id1

  • ,则为空

备注:

  • -id1、id2和id3是VARCHAR(10) (是注释、回复的id,提取值(id1、id2和id3) ),我使用-The()函数在/ (PHP)
    • -The列type_info上不需要更新其内容。我所需要的只是插入并且只选择
    • -I作为gson.

    来获取数据。

因此,我的问题是:为了提高查询SELECT * FROM table WHERE date > dateValue的速度,我是保持表的设计不变,还是有效率更高的设计?

如果我将表按类型的列划分为4个表,它会更好吗?

通知表:

代码语言:javascript
复制
  id/from_id/to_id/type/date

Type_1表:

代码语言:javascript
复制
notfication_i/id1

Type_2表:

代码语言:javascript
复制
notfication_i/id1/id2

Type_3表:

代码语言:javascript
复制
notfication_i/id1/id2/id3

注意:只考虑提高以上查询速度的最佳表设计。

这个设计合适吗?

谢谢:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-01 05:21:22

简单的答案--将多个数据项嵌入到一个列中是错误的做法。由于您的数据包含多个不同表中的外键列表,因此应创建单个列,每个潜在外键对应一个列。

每个列都有自己的索引,允许快速查找每种数据类型的数据,而不必使用字符串函数操作数据。

拥有3个潜在的空列的开销可以忽略不计。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62651217

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档