2010-08-18 16 views
14

Entiendo las restricciones de tamaño/almacenamiento de los campos MySQL TEXT y MEDIUMTEXT, pero solo quería asegurarme por completo (antes de firmar un cambio) de que no estoy viendo ningún efecto adverso al convertir un campo con los datos existentes de TEXTO a MEDIUMTEXT.¿Tiene algún inconveniente la conversión del campo de texto de MySQL a MEDIUMTEXT?

Mis preocupaciones son principalmente el rendimiento, la integridad y el almacenamiento en disco.

Gracias

Respuesta

23

En relación con el rendimiento, la integridad y el almacenamiento en disco en la capa de base de datos, no se preocupe.

  • Los datos de longitud variable como varchar, texto y blob se almacenan sin relleno.
  • No conozco ningún problema con la integridad. Todos los tipos de datos son tratados atómicamente por el motor de base de datos.
  • Por supuesto, si tiene datos de texto realmente largos, se necesitará más almacenamiento y más tiempo para la E/S del disco y el ancho de banda de la red cuando recupere esos datos. Pero si esa es la información que necesita poner en la base de datos, entonces eso es lo que tiene que hacer.

puedo pensar en una posible impacto:

Algunas bibliotecas de interfaz de cliente pre-asignar un búfer para mantener los resultados, y asignar suficiente memoria para el valor más grande posible, ya que el cliente no conoce el datos hasta que obtenga Por lo tanto, la biblioteca asignaría 16 MB por mediumtext mientras que asignaría 64 KB por text. Esto es algo a lo que debe tener cuidado si tiene un límite de memoria bajo en la capa de su cliente. Por ejemplo, PHP tiene un parámetro de configuración memory_limit para scripts, y el búfer asignado para los conjuntos de resultados de datos contaría para esto.

+0

Gracias por la respuesta rápida, Bill! – scooterhanson

+1

'Algunas bibliotecas de interfaz de cliente', encontré que este problema de memoria era un problema con las antiguas bibliotecas de mysql en PHP. Sin embargo, 3 años después, esto ya no debería ser un problema. – kasimir

+3

@kasimir: con PHP 5.6 y PDO, 'mediumtext' usa más memoria que' text' (con el mismo valor, una cadena vacía). En mi prueba simple, la diferencia es de 0.5 MiB vs. 1.5 MiB. – Bell

Cuestiones relacionadas