Sí, puede cambiar a MyISAM. Pero eso no es necesariamente una buena idea:
- MyISAM no admite transacciones
- Las tablas MyISAM a menudo necesitan
REPAIR
después de un accidente
Una tabla InnoDB puede manejar más de 8 KB por fila. ¿Aparentemente te encontraste con el problema al tener una docena o más de columnas TEXT/BLOB? Se almacenan como máximo 767 bytes de una columna en la parte principal de la fila; el resto se pone en un bloque separado.
Creo que uno ROW_FORMAT
pondrá todas las columnas grandes en un bloque separado, dejando solo 20 bytes para señalarlo.
Otro enfoque para las filas anchas es hacer "particiones verticales". Es decir, cree otra tabla (o tablas) con una PRIMARY KEY
coincidente y algunas de las grandes columnas. Es especialmente útil mover columnas escasamente pobladas a una tabla de este tipo, luego tener menos filas en esa tabla y usar LEFT JOIN
para obtener los datos. Además, si tiene algunas columnas que rara vez necesita SELECT
, entonces esos son buenos candidatos para moverse -- no JOIN
necesario cuando no necesita esas columnas.