一张表中有多少个字段?

时间:2010-06-29 06:57:30

标签: mysql

好的,我正在创建一个游戏,我有一个表,我保存了很多关于成员的信息,所以我有很多字段。一张表中有多少个字段?有关系吗?也许我应该把这些信息分成两三四个表?你觉得怎么样?

5 个答案:

答案 0 :(得分:7)

规范化数据库

如果您认为列数太多,则可能有重复组,这表明您应该规范化数据库。请在此处查看示例:Description of the database normalization basics

硬MySQL限制

MySQL 5.5 Column Count Limit

  

每个表的最大行大小为65,535字节。

     

有4096列的硬限制   每桌

答案 1 :(得分:5)

将数据拆分成表通常不应由列数决定,而是由数据的性质决定。将大表拆分为较小表的过程称为normalization

我能想到拆分表的另一个原因是,如果你可能需要集群中的数据,即你经常需要列AD或列EL,但绝不需要所有列或列DF,那么你可以拆分表分为两个表,一个包含列AD和主键,另一个包含列EL和主键。

答案 2 :(得分:1)

谈到限制,MySQL说它是4096(source)。

然而,我还没有看到如此大的表,即使那些庞大的数据挖掘表也没有接近。

只要您的数据库是normalized,就不应该担心它。一旦你可以发现两次存储相同的数据(例如,player表可能有player_type列存储一些固定值),值得将这些数据移动到单独的表中,而不是复制其他信息。表,因此减少列数(但这只是标准化的“副作用”,而不是驱动它的东西)。

答案 3 :(得分:1)

我从未亲自遇到过超过500列的列,但是没有最大尺寸,没有理由没有设计要求。但要注意从它做SELECT *。

答案 4 :(得分:-3)

“关于成员的信息” - 嗯总是很难,但我总是将可识别信息分成另一个表,并使用salt键将2链接在一起。这样就不会“劫持”用户名和密码等。并且你总是可以使用SALT作为会话变量而不是用户名/密码/ userId等等。

通常我只在1个表中存储ID,盐和加入日期。正如我所说,其余的我试图“隐藏”,以便他们不能被“链接/劫持”。

希望帮助