【问题标题】:MySQL - Barracuda file format & row compression to avoid ERROR 1118 Row Size Too LargeMySQL - Barracuda 文件格式和行压缩以避免 ERROR 1118 Row Size Too Large
【发布时间】:2013-12-19 14:37:46
【问题描述】:

我正在尝试使用 mysql 5.5.31(社区版)进行行压缩,以避免在仓库类型上下文中进行非规范化时出现以下错误。

ERROR 1118 (42000): Row size too large. The maximum row size for the used
table type, not counting BLOBs, is 65535. You have to change some columns
to TEXT or BLOBs

我已启用各种系统变量,如下所示:

mysql> show variables like 'innodb_file%';
+--------------------------+-----------+
| Variable_name            | Value     |
+--------------------------+-----------+
| innodb_file_format       | Barracuda |
| innodb_file_format_check | ON        |
| innodb_file_format_max   | Barracuda |
| innodb_file_per_table    | ON        |
+--------------------------+-----------+

但是当我尝试执行以下测试时,我仍然得到相同的行大小太大的错误。

create table foo (  first varchar(10000),
    second varchar(10000),
    third varchar(10000),
    fourth varchar(10000),
    fifth varchar(10000),
    sixth varchar(10000),
    seventh varchar(10000)
 ) ENGINE=InnoDB ROW_FORMAT=Compressed KEY_BLOCK_SIZE=8;

有人知道我在这里可能缺少什么吗?有几个来源表明这应该可行。

MYSQL - How to workaround the row size limit of 66 KBytes

Change limit for "Mysql Row size too large"

Django-MySQL enable Row_Format=Compress with syncdb

【问题讨论】:

    标签: mysql innodb data-warehouse denormalization


    【解决方案1】:

    https://dba.stackexchange.com/a/22463 - 这表明即使在梭子鱼下,组合的行长仍然有限制。

    尝试将varhcar(x) 改为textblob,在我的测试中效果很好:

    create table foo_text (  
        first longtext,
        second longtext,
        third longtext,
        fourth longtext,
        fifth longtext,
        sixth longtext,
        seventh longtext
    ) ENGINE=InnoDB ROW_FORMAT=Compressed KEY_BLOCK_SIZE=8;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-09-29
      • 2019-01-12
      • 2022-01-04
      • 2013-08-09
      • 2018-09-16
      • 1970-01-01
      相关资源
      最近更新 更多