Un BLOB es un objeto binario que puede tratar
        una cantidad de datos variables. Los cuatro tipos
        BLOB son TINYBLOB,
        BLOB, MEDIUMBLOB, y
        LONGBLOB. Difieren sólo en la longitud
        máxima de los valores que pueden tratar.
      
        Los cuatro tipos TEXT son
        TINYTEXT, TEXT,
        MEDIUMTEXT, y LONGTEXT. Se
        corresponden a los cuatro tipos BLOB y tienen
        las mismas longitudes y requerimientos de almacenamiento.
      
Consulte Sección 11.5, “Requisitos de almacenamiento según el tipo de columna”.
        Las columnas BLOB se tratan como cadenas de
        caracteres binarias (de bytes). Las columnas
        TEXT se tratan como cadenas de caracteres no
        binarias (de carácateres). Las columnas BLOB
        no tienen conjunto de caracteres, y la ordenación y la
        comparación se basan en los valores numéricos de los bytes.
        Las columnas TEXT tienen un conjunto de
        caracteres y se ordenan y comparan en base de la colación del
        conjunto de caracteres asignada a la columna desde MySQL 4.1.
      
        No hay conversión de mayúsculas/minúsculas para columnas
        TEXT o BLOB durante el
        almacenamiento o la recuperación.
      
        Si asiguna un valor a una columna BLOB o
        TEXT que exceda la longitud máxima del tipo
        de la columna, el valor se trunca. Si los caracteres truncados
        no son espacios, aparece una advertencia. Puede hacer que
        aparezca un error en lugar de una advertencia usando el modo SQL
        estricto. Consulte Sección 5.3.2, “El modo SQL del servidor”.
      
        En la mayoría de aspectos, puede tratar una columna
        BLOB como VARBINARY que
        puede ser tan grande como desee. Similarmente, puede tratar
        columnas TEXT como
        VARCHAR. BLOB y
        TEXT difieren de VARBINARY
        y VARCHAR en los siguientes aspectos::
      
            No se eliminan espacios al final para columnas
            BLOB y TEXT cuando los
            valores se almacenan o recuperan. Antes de MySQL 5.0.3, esto
            difiere de VARBINARY y
            VARCHAR, para los que se eliminaban los
            epacios al final cuando se almacenaban.
          
            Tenga en cuenta que TEXT realiza
            comparación espacial extendida para coincidir con el objeto
            comparado, exactamente como CHAR y
            VARCHAR.
          
            Para índices en columnas BLOB y
            TEXT, debe especificar una longitud de
            prefijo para el índice. Para CHAR y
            VARCHAR, la longitud de prefijo es
            opciona. Consulte Sección 7.4.3, “Índices de columna”.
          
            BLOB y TEXT no pueden
            tener valores DEFAULT .
          
        En MySQL 5.0, LONG y LONG
        VARCHAR se mapean con el tipo de datos
        MEDIUMTEXT. Esto existe por compatibilidad.
        Si usa el atributo BINARY con el tipo de
        columna TEXT, se asigna la colación binaria
        del conjunto de caracteres a la columna.
      
        MySQL Connector/ODBC define los valores BLOB
        como LONGVARBINARY y valores
        TEXT como LONGVARCHAR.
      
        Como los valores BLOB y
        TEXT pueden ser extremadamente grandes, puede
        encontrar algunas restricciones al usarlos:
      
            Sólo los primeros max_sort_length bytes
            de la columna se usan al ordenar. El valor por defecto de
            max_sort_length es 1024; este valor puede
            cambiarse usando la opción
            --max_sort_length al arrancar el servidor
            mysqld . Consulte
            Sección 5.3.3, “Variables de sistema del servidor”.
          
            Puede hacer que haya más bytes significativos al ordenar o
            agrupar incrementando el valor de
            max_sort_length en tiempo de ejecución.
            Cualquier cliente puede cambiar el valor de su variable de
            sesión max_sort_length :
          
mysql> SET max_sort_length = 2000;
mysql> SELECT id, comment FROM tbl_name
    -> ORDER BY comment;
            Otra forma de usar GROUP BY o
            ORDER BY en una columna
            BLOB o TEXT
            conteniendo valores grandes cuando quiere que más de
            max_sort_length bytes sean significativos
            es convertir el valor de la columna en un objeto de longitud
            fija. La forma estándar de hacerlo es con la función
            SUBSTRING . Por ejemplo, el siguiente
            comando causa que 2000 bytes de la columna
            comment se tengan en cuenta para
            ordenación:
          
mysql> SELECT id, SUBSTRING(comment,1,2000) FROM tbl_name
    -> ORDER BY SUBSTRING(comment,1,2000);
            El tamaño máximo de un objeto BLOB o
            TEXT se determina por su tipo, pero el
            valor máximo que puede transmitir entre el cliente y el
            servidor viene determinado por la cantidad de memoria
            disponible y el tamaño de los buffers de comunicación.
            Puede cambiar el tamaño de los buffers de comunicación
            cambiando el valor de la variable
            max_allowed_packet, pero debe hacerlo
            para el servidor y los clientes . Por ejemplo,
            mysql y mysqldump le
            permite cambiar el valor de la variable del cliente
            max_allowed_packet . Consulte
            Sección 7.5.2, “Afinar parámetros del servidor”,
            Sección 8.3, “La herramienta intérprete de comandos mysql”, y Sección 8.7, “El programa de copia de seguridad de base de datos
      mysqldump”.
          
        Cada valor BLOB o TEXT se
        representa internamente como un objeto a parte. Esto se hace en
        contraste con todos los otros tipos de columnas, para los que el
        almacenamiento se hace una vez por columna cuando se abre la
        tabla.
      
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.

