Задать вопрос
Ответы пользователя по тегу MySQL
  • MySQL: Как побороть ошибку Row size too large?

    MikeVL
    @MikeVL Автор вопроса
    Лишние индексы удалил. Но не получается сменить тип полей.

    mysql> ALTER TABLE market_offer MODIFY `text` LONGTEXT, MODIFY `tizer` LONGTEXT, MODIFY title TEXT, MODIFY picture TEXT, MODIFY pictureurl TEXT, MODIFY url TEXT, ROW_FORMAT=COMPRESSED;
    ERROR 1118 (42000): Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
    Error (Code 1118): Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
    Error (Code 1030): Got error 139 from storage engine

    Еще одна интересная вешь, за пару дней таблицы выросла в 4 раза.

    mysql> SHOW TABLE STATUS LIKE 'market_offer'\G
    *************************** 1. row ***************************
               Name: market_offer
             Engine: InnoDB
            Version: 10
         Row_format: Compact
               Rows: 24329782
     Avg_row_length: 1333
        Data_length: 32445038592
    Max_data_length: 0
       Index_length: 1818722304
          Data_free: 950009856
     Auto_increment: 14943874034
        Create_time: 2014-09-19 19:30:18
        Update_time: NULL
         Check_time: NULL
          Collation: utf8_general_ci
           Checksum: NULL
     Create_options:
            Comment:
    1 row in set (0.05 sec)

    Rows: 24329782

    А по факту в БД находится:
    mysql> select count(*) from market_offer\G
    *************************** 1. row ***************************
    count(*): 4956036
    Ответ написан