2013-06-19 29 views
0

我有一个MYSQL中的消息系统中的消息表。我的表是:如果我的桌子拿着我的信息满了,我该怎么办?

messages(from_id, message, date, hash) 

我知道一个表可以容纳一定数量的记录。如果桌子上的信息已满,我该怎么办?我可以创建一个像我已经拥有的新表并开始将下一条消息移到它上面吗?任何想法我怎么能做到这一点?谢谢

+0

定义'full'?磁盘空间不足? – ethrbunny

+0

是什么让你觉得你的桌子会变满?它不会超过最大文件大小(在64位操作系统上以单位为单位测量)。 –

+1

MyISAM存储引擎最多支持2^32行,InnoDB支持最大64TB的总表大小。你有多少行你的桌子变得“满”?请参阅:http://stackoverflow.com/questions/2716232/maximum-number-of-records-in-a-mysql-database-table –

回答

0

如果您的磁盘已满,您描述的表格的唯一方法可能是满的。为什么不删除旧信息?

0

MySQL表没有真正的大小限制(请参阅documentation)。在某个时候,也许你可以归档旧信息。

+0

假设我在我的系统中拥有1.000.000.000个成员,他们每天互相交换消息。想象一下每天将在表格中创建和存储的消息数量,称为“消息”。经过很长一段时间后会不会满员? – user2491321

+0

当然。但是在存储问题发生之前,您就会遇到费用和带宽问题。也许你可以从头开始。 Facebook花了一些时间才达到10亿用户。现在不要担心。 –

+0

Facebook没有十亿成员,所以我不知道你为什么要用一个不可能的数字开始。如果你有一百万,这是更合理的,你将需要**碎片**。你在这里没有选择。 – tadman

0

你是什么意思,完整?您已达到from_id支持的最大范围?然后,你有两个主要选择:

  • 转换from_id从签约 - >无符号,这将增加一倍,你支持的ID范围(0-> 2倍,而不是-X - > + X)
  • 转换从from_id int - > bigint,它将你从一个32位数字转换为64位数字。
相关问题