La diferencia realmente solo importa para MyISAM, a otros motores de almacenamiento no les importa la diferencia. EDITAR: Muchos usuarios comentaron que a InnoDB le importa: link 1 by steampowered, link 2 by Kaan.
Con MyISAM con filas de ancho fijo, hay algunas ventajas:
ninguna fila fragmentación: Es posible con filas de ancho variable para obtener filas individuales divididos en varias secciones a través del archivo de datos. Esto puede aumentar la búsqueda de discos y ralentizar las operaciones. Es posible desfragmentarlo con OPTIMIZE TABLE, pero esto no siempre es práctico.
Tamaño del puntero del archivo de datos: en MyISAM, existe un concepto de un puntero de archivo de datos que se usa cuando necesita hacer referencia al archivo de datos. Por ejemplo, esto se usa en índices cuando se refieren a dónde está realmente la fila. Con tamaños de ancho fijo, este puntero se basa en el desplazamiento de fila en el archivo (es decir, las filas son 1, 2, 3, independientemente de su tamaño). Con ancho variable, el puntero se basa en el desplazamiento de bytes (es decir, las filas pueden ser 1, 57, 163). El resultado es que con tablas grandes, el puntero debe ser más grande, lo que agrega potencialmente mucho más sobrecarga a la tabla.
Más fácil de arreglar en caso de corrupción. Como cada fila tiene el mismo tamaño, si su tabla MyISAM se corrompe, es mucho más fácil de reparar, por lo que solo perderá los datos que estén realmente dañados. Con un ancho variable, en teoría es posible que los punteros de ancho variable se arruinen, lo que puede dar como resultado que los datos de la manguera sean malos.
Ahora el principal inconveniente del ancho fijo es que desperdicia más espacio.Por ejemplo, necesita usar campos CHAR en lugar de los campos VARCHAR, por lo que termina ocupando más espacio.
Normalmente, no tendrá muchas opciones en el formato, ya que se dicta en función del esquema. Sin embargo, podría valer la pena si solo tienes unos pocos varchar o un solo blob/texto para tratar de optimizarlo. Por ejemplo, considere cambiar el único varchar en un char, o divida el blob en su propia tabla.
Usted puede leer más sobre esto en:
http://dev.mysql.com/doc/refman/5.0/en/static-format.html
http://dev.mysql.com/doc/refman/5.0/en/dynamic-format.html
[Esta página] (http://dev.mysql.com/doc/innodb/1.1/en/innodb-row-format-dynamic.html) indica que el formato de fila dinámica también tiene significado para InnoDB. – steampowered
Otro artículo que indica el formato de fila dinámica tiene importancia para InnoDB: [Blob Storage en InnoDB - MySQL Performance Blog] (http://www.mysqlperformanceblog.com/2010/02/09/blob-storage-in-innodb/) – Kaan
I probé la inserción de 10 mil registros en una tabla con 'ROW_SIZE = 282B '. Con InnoDB, tomó casi 500 segundos, con MyISAM y MEMORY, tomó aproximadamente 2.97 segundos. – Victor