2

这有点模棱两可,我认为更多地依赖于您自己的个人经验,因此欢迎任何意见。

我有一个数据库 X,在 X 中是表 Y。表 Y 已经变得非常大(110 万行),它已经无法重构了。

所以......根据您的经验,在我开始看到问题(如果有的话)发生之前,这张表还能增长多少,这些问题可能是什么?

4

2 回答 2

2

为什么只有 110 万行会引起问题?大多数(如果不是全部)RDBMS 可以处理很多很多(比如数十亿),只要存储等就足够了,并且只要分区可以处理相当大的文件(例如 Fat32 仅支持每个文件最多 2GB例子)。

还; 在说“在我开始看到问题(如果有)之前”时,您需要更具体地说明您所指的内容。什么样的问题?如果您没有使用正确的索引,例如可能会减慢查询速度,您可能已经遇到问题。这可能是一个问题,但在某些情况下也可以。

另一个实际上可能是问题的问题是类型(无符号)的自动增量主键字段之类的东西,int它可能会在大约 2.1(有符号)或 42 亿行(无符号)处溢出,但由于您目前有 110 万行,那就是现在不用担心什么了。(当然,有符号和无符号的确切值分别是 2 31 -1 和 2 32int -1 )。在这种情况下,您将不得不考虑bigint为您的 PK 使用类似或其他类型(甚至可能是 (var)char 等)。

这里唯一有趣的是,特别是对于 MySQL,可能是:您使用的是 InnoDB 还是 MyISAM?我不知道确切的细节,因为我通常不使用 MySQL,但我似乎记得 MyISAM 可能会导致麻烦(可能在旧版本中,例如 <5.0 或其他版本)。如我错了请纠正我。编辑:在这里阅读。MyISAM 支持最大。显然是 2 32行,除非使用特定选项编译。

于 2013-03-26T10:46:22.413 回答
0

这取决于所使用的操作系统。对于旧系统,典型问题是最大文件大小。旧版本的操作系统所使用的文件系统(例如 FAT32)的最大32 bit寻址不能超过2GB.

请参阅最大表大小文档。

于 2013-03-26T10:52:53.930 回答