首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将保留字段添加到大型MySQL表中是个好主意吗?

问将保留字段添加到大型MySQL表中是个好主意吗?
EN

Database Administration用户
提问于 2015-02-04 20:18:15
回答 2查看 77关注 0票数 0

您可能知道,向包含数百万条记录的MySQL表中添加一个新列是困难的,在某些情况下是不可能的。

在每个表(例如,元表)中添加一个文本列以避免将来的头痛是一个好主意吗?当然,在大多数情况下,它们是空的。

这些数据可以作为JSON存储。我知道这个字段不容易访问,但它可以避免另一个连接,这对于这个性能敏感的应用程序来说是很重要的。

它使用InnoDB。

EN

回答 2

Database Administration用户

回答已采纳

发布于 2015-02-06 18:14:12

我同意“糟糕的形式”。

A计划:

下面是另一种方法,当您确实需要添加另一列时(S)。

使用相同的主键(“垂直分区”)创建一个新表。(但不是AUTO_INCREMENT。)把新的一栏(S)放进去。获取新数据的联接在您的代码中将是混乱的,但只有当您实际需要这些新列时才会如此。

另外,将其设置为左联接,以便在没有列数据的情况下,新表中的行可以丢失。(此建议适用于“稀疏”信息。)垂直分区和左联接通常是“集群”中稀疏属性的一个好主意。

B计划:

要详细说明JSON建议--有一个包含键值对的文本字段(现有的或新的),您实际上不需要MySQL来查看、在哪里或在什么地方进行排序。让应用程序看到它们。

更好的是,压缩应用程序中的JSON并将其存储在一个BLOB中--这将使其体积缩小3倍。

票数 0
EN

Database Administration用户

发布于 2015-02-04 22:21:39

我响应@JohnM的“坏表单”的评论-正确地设计东西,如果你有新的要求(或者你的设计第一次不是完美的--我不太可能知道:- ),那么选择添加新的字段。如果JSON适合您明确演示的需求,请使用JSON,否则使用“普通”字段类型。

我见过太多的系统,这些“备用字段”被用于任何和任何东西,它最终变成了一个无法维护的混乱的无文档的字母表汤。

“嘿,吉米,字段XYZ__001是做什么的?”

“我不知道,问比利”

“但是比利正在阿尔加维度假”

“哎呀!”

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

https://dba.stackexchange.com/questions/91108

复制
相关文章

相似问题

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