具体来说,MySQL 的最大行大小限制为 64kB。我想知道 Amazon Aurora(据说是 MySQL 的替代品)是否受到同样的限制。
MySQL 行的大小没有 64KB 的限制。有限制,但几乎从来没有人击中过它们。你能指出你在哪里得到这个限制吗?
InnoDB 中有几个模糊的限制,例如有几十个 big VARCHARs
,但它们很容易解决。
以下是 MySQL 的主要限制:http : //mysql.rjweb.org/doc.php/limits
编辑
乍一看,关于行大小的手册页说行大小有 64K 限制,但进一步阅读它说“BLOB 和 TEXT 列从一到四加上八个字节计数到行大小限制,因为它们的内容是分开存储的来自该行的其余部分。” 由于LONGBLOB
和LONGTEXT
列可以包含多达4GB每个中,最大总行大小(包括例如列)是至少4GB。
此外,“分开存储”取决于所ENGINE
涉及的人;该报价并未涵盖所有情况。
最重要的是,可以创建包含超过 64KB 数据的表。(我不知道超过 4GB。)这样做可能需要使用TEXT
而不是VARCHAR(65535)
(在语义上几乎相同)等。
我制作了许多表(MyISAM 和 InnoDB),其中“行大小”大于 64KB,无论是定义还是实际。我有多个案例MEDIUMTEXT
或MEDIUMBLOB
工作正常,至少可以追溯到版本 4.0。