我有一个表,里面有 300 列。每列最多为255个字节(也就是这个企业的理由)。
当我尝试使用创建它时VARCHAR(255)
,我超过了最大字节数的限制。所以我创建的是使用 300 个TEXT
字段。然后当我尝试插入数据时,出现错误:
行大小太大 (> 8126)。
将某些列更改为 TEXT 或 BLOB 或使用 ROW_FORMAT=DYNAMIC 或 ROW_FORMAT=COMPRESSED 可能会有所帮助。
在当前行格式中,内联存储 768 字节的 BLOB 前缀。
阅读完此内容后,我尝试通过指定ROW_FORMAT=COMPRESSED
. 现在的问题似乎是,当我尝试使用该格式创建表时,出现相同的错误。
CREATE TABLE T_ObjLarge__c (Id VARCHAR(18), Name VARCHAR(80),
ObjLarge_Field_1__c TEXT,
ObjLarge_Field_2__c TEXT,
...
ObjLarge_Field_300__c TEXT
) ROW_FORMAT=COMPRESSED ;
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:
行大小太大 (> 8126)。
将某些列更改为 TEXT 或 BLOB 可能会有所帮助。
在当前行格式中,内联存储 0 字节的 BLOB 前缀。
我在 Linux mint 上使用 MySQL 5.5.31。没有索引。我试过DYNAMIC
格式;它的行为方式相同。
的输出SHOW GLOBAL VARIABLES LIKE 'innodb_file_per_table';
:
+--------------------------+-----------+ …
Run Code Online (Sandbox Code Playgroud)