Sim, você pode mudar para MyISAM. Mas isso não é necessariamente uma boa ideia:
- MyISAM não suporta transações
- As tabelas MyISAM geralmente precisam de
REPAIR
após uma falha
Uma tabela InnoDB pode lidar com mais de 8 KB por linha. Aparentemente, você encontrou o problema por ter uma dúzia ou mais de colunas TEXT/BLOB? No máximo 767 bytes de uma coluna são armazenados na parte principal da linha; o resto é colocado em um bloco separado.
Acho que um
ROW_FORMAT
colocará todas as colunas grandes em um bloco separado, deixando apenas 20 bytes para apontar para ele. Outra abordagem para linhas largas é fazer "particionamento vertical". Ou seja, construa outra tabela (ou tabelas) com uma
PRIMARY KEY
correspondente e algumas das grandes colunas. É especialmente útil mover coluna(s) esparsamente preenchida(s) para tal tabela, então ter menos linhas nessa tabela e usar LEFT JOIN
para buscar os dados. Além disso, se você tiver alguma(s) coluna(s) que raramente precisa SELECT
, então esses são bons candidatos para mover -- sem JOIN
necessário quando você não precisa dessas colunas.