Tengo un problema con MySQL, tengo una tabla con muchos campos de texto. Cuando trato de almacenar algunos datos obtengo este error.
Tamaño de fila demasiado grande. El tamaño máximo de fila para el tipo de tabla utilizado, sin contar BLOB, es 8126. Debe cambiar algunas columnas a TEXTO o BLOB
El texto que almaceno en cada campo no es demasiado largo, solo unos pocos párrafos en cada uno.
¿Que puedo hacer?
Es posible que desee leer este artículo que explica mucho sobre los tamaños de fila de MySQL. Es importante tener en cuenta que incluso si utiliza campos TEXT o BLOB, el tamaño de su fila podría superar los 8K (límite para InnoDB) porque almacena los primeros 768 bytes para cada campo en línea en la página. La forma más sencilla de solucionar esto es usar el formato de archivo Barracuda con InnoDB. Básicamente, esto elimina el problema por completo almacenando solo el puntero de 20 bytes en los datos de texto en lugar de almacenar los primeros 768 bytes.
fuente
Bueno, haz lo que dice mysql: convierte grandes campos de varchar a texto o blob (ALTER TABLE). los campos de texto se comportan de manera muy similar a varchar (los índices necesitan una longitud de prefijo, pero funcionan), pero se almacenan por separado.
Esta referencia le indica los límites exactos de cada motor de tabla mysql estándar:
http://dev.mysql.com/doc/refman/5.0/en/column-count-limit.html
Y aquí hay todo lo que debes saber sobre los campos de texto:
http://dev.mysql.com/doc/refman/5.0/en/blob.html
fuente
Principalmente publicación cruzada de Stack Overflow , pero este es un error abierto (y verificado) en el motor InnoDB del servidor MySQL . Una solución temporal por ahora es recurrir al motor MyISAM como almacenamiento temporal. Entonces, en su archivo my.cnf:
fuente