Siempre use cualquier BLOB
data-type para serializar los datos para que no consigue cortar y romper la serialización de una manera segura binario. Si no hay un máximo para la longitud de la cadena final, necesitará LONGBLOB
. Si sabe que los datos no llenarán 2^24 caracteres, puede usar MEDIUMBLOB
. MEDIUMBLOB
es de aproximadamente 16 MB, mientras que LONGBLOB
es de aproximadamente 4 GB, por lo que diría que es bastante seguro con MEDIUMBLOB
.
¿Por qué un tipo de datos binarios? Los tipos de datos de texto en Mysql tienen una codificación. La codificación de caracteres tendrá un efecto sobre cómo se transpone la información serializada entre las diferentes codificaciones. P.ej. cuando se almacena como Latin-1 pero luego se lee como UTF-8 (por ejemplo, debido a la configuración de codificación de conexión del controlador de base de datos), los datos serializados pueden romperse debido a que los desplazamientos binarios cambiaron, pero los datos serializados no se codificaron para dichos cambios. Las cadenas serializadas de PHP son datos binarios, no con ninguna codificación específica.
100,000 caracteres muy altamente restringe sus opciones. Además, si alguna vez quiere manipular estas matrices en MySQL o buscarlas, o básicamente hacer algo más que tratarlas como una masa de datos gigantesca, debe almacenarlas correctamente en lugar de serializarlas. – Corbin
Es solo un centro de almacenamiento de datos que se mostrará a través de php, la manipulación a través de mysql nunca ocurrirá. Gracias @corbin – hadley
mejor con tipos de campo longbinary. todos los campos de texto están sujetos a traducciones de juegos de caracteres, lo que podría dañar sus datos serializados. –