Mysql 我们桌上有多少块地

Mysql 我们桌上有多少块地,mysql,database,Mysql,Database,一个表中可能有多少字段 我应该在一张桌子上保持150个字段吗 或 保持与其他表的关系 谢谢 Bharanikumar在绝大多数情况下,一个表中有150列是数据库严重非规范化的症状 您可能需要阅读并重新评估数据库设计 用你的话来说,使用“维护与其他表的关系”如果你的业务需要150列,那么这是一个“好方法”。我从未见过这样的商业需求,但这并不意味着不存在这样的需求。我在olap类型的案例中看到了非常广泛的表,因此如果您正在这样做,那么很有可能您走上了正确的道路。如果您使用此表获得更多otap功能,那

一个表中可能有多少字段

我应该在一张桌子上保持150个字段吗

保持与其他表的关系

谢谢
Bharanikumar

在绝大多数情况下,一个表中有150列是数据库严重非规范化的症状

您可能需要阅读并重新评估数据库设计


用你的话来说,使用“维护与其他表的关系”

如果你的业务需要150列,那么这是一个“好方法”。我从未见过这样的商业需求,但这并不意味着不存在这样的需求。我在olap类型的案例中看到了非常广泛的表,因此如果您正在这样做,那么很有可能您走上了正确的道路。如果您使用此表获得更多otap功能,那么您可能走错了路。也许如果您提供了更多关于您要完成的信息,我们可以提供一些建议(而不是“做”或“做不同的方式”)。

150位类型字段可能是可以的,但是您还必须考虑数据库允许存储的记录的最大长度。对于varchar字段,大多数数据库都允许您创建一个表,如果所有字段都填充到其最大长度,则该表理论上会违反最大值。但是,它不允许您实际添加太长的记录,。这是一种陷阱,可以持续多年,直到有人在一个潜在的插入中插入了太多的一个字符,然后爆炸,通常需要很长时间才能找到解决此类问题的方法。最好避免设计列的总长度大于最大记录字节长度的表

宽度较小的表也可能更快地进行查询

另外,150列通常表示您确实需要查看设计,看看相关表是否更好。例如,如果您有phone1、phone2、phone3,那么您需要一个相关的电话表


如果你真的需要所有150个列,那么考虑哪些可能最常一起查询。把这些放在父表中。然后将查询次数较少的列(或仅与特定函数相关的列)添加到相关表中。没有理由不在表之间建立1-1关系,只需使用Parnate表中的id作为子表中的PK以及父表中的FK。

Link说每个表有4096列的硬限制,最大行大小为65535字节。