[+/-]
      MyISAM es el motor de almacenamiento por
      defecto. Se basa en el código ISAM pero tiene
      muchas extensiones útiles. (Tenga en cuenta que MySQL 5.0 no
      soporta ISAM.)
    
      Cada tabla MyISAM se almacena en disco en tres
      ficheros. Los ficheros tienen nombres que comienzan con el nombre
      de tabla y tienen una extensión para indicar el tipo de fichero.
      Un fichero .frm almacena la definición de
      tabla. El fichero de datos tiene una extensión
      .MYD (MYData) . El fichero
      índice tiene una extensión .MYI
      (MYIndex) .
    
      Para especificar explícitamente que quiere una tabla
      MyISAM, indíquelo con una opción
      ENGINE:
    
CREATE TABLE t (i INT) ENGINE = MYISAM;
      (Nota: Antiguas versiones de
      MySQL usaban TYPE en lugar de
      ENGINE (por ejemplo: TYPE =
      MYISAM). MySQL 5.0 soporta esta sintaxis para
      compatibilidad con versiones anteriores pero
      TYPE está obsoleto y ahora se usa
      ENGINE .)
    
      Normalmente, la opción ENGINE no es necesaria;
      MyISAM es el motor de almacenamiento por
      defecto a no ser que se cambie.
    
      Puede chequear o reparar tablas MyISAM con la
      utilidad myisamchk . Consulte
      Sección 5.8.3.7, “Usar myisamchk para recuperación de desastres”. Puede comprimir tablas
      MyISAM con myisampack para
      que ocupen mucho menos espacio. Consulte
      Sección 8.2, “myisampack, el generador de tablas comprimidas de
      sólo lectura de MySQL”.
    
      Las siguientes son algunas características del motor de
      almacenamiento MyISAM :
    
Todos los datos se almacenan con el byte menor primero. Esto hace que sean independientes de la máquina y el sistema operativo. El único requerimiento para portabilidad binaria es que la máquina use enteros con signo en complemento a dos (como todas las máquinas en los últimos 20 años) y formato en coma flotante IEEE (también dominante en todas las máquinas). La única área de máquinas que pueden no soportar compatibilidad binaria son sistemas empotrados, que a veces tienen procesadores peculiares.
No hay penalización de velocidad al almacenar el byte menor primero; los bytes en un registro de tabla normalmente no están alineados y no es un problema leer un byte no alineado en orden normal o inverso. Además, el código en el servidor que escoge los valroes de las columnas no es crítico respecto a otro código en cuanto a velocidad.
Ficheros grandes (hasta longitud de 63 bits) se soportan en sistemas de ficheros y sistemas operativos que soportan ficheros grandes.
Registros de tamaño dinámico se fragmentan mucho menos cuando se mezclan borrados con actualizaciones e inserciones. Esto se hace combinando automáticamente bloques borrados adyacentes y extendiendo bloques si el siguiente bloque se borra.
          El máximo número de índices por tabla
          MyISAM en MySQL 5.0 es 64. Esto puede
          cambiarse recompliando. El máximo número de columnas por
          índice es 16.
        
La longitud máxima de clave es 1000 bytes. Esto puede cambiarse recompilando. En caso de clave mayor a 250 bytes, se usa un tamaño de bloque mayor, de 1024 bytes.
          Las columnas BLOB y TEXT
          pueden indexarse.
        
          Valores NULL se permiten en columnas
          indexadas. Esto ocupa 0-1 bytes por clave.
        
Todos los valores de clave numérico se almacenan con el byte mayor primero para mejor compresión de índice.
          Cuando se insertan registros en orden (como al usar columnas
          AUTO_INCREMENT ), el árbol índice se
          divide de forma que el nodo mayor sólo contenga una clave.
          Esto mejora la utilización de espacio en el árbol índice.
        
          El tratamiento interno de una columna
          AUTO_INCREMENT por tabla.
          MyISAM actualiza automáticamente esta
          colunmna para operaciones INSERT y
          UPDATE . Esto hace las columnas
          AUTO_INCREMENT más rápidas (al menos
          10%). Los valores iniciales de la secuencia no se reúsan tras
          ser borrados. (Cuando una columna
          AUTO_INCREMENT se define como la última
          columna de un índice de varias columnas, se reúsan los
          valores borrados iniciales de la secuencia.) El valor
          AUTO_INCREMENT puede cambiarse con
          ALTER TABLE o myisamchk.
        
          Si una tabla no tiene bloques libres en medio del fichero de
          datos, puede INSERT nuevos registros a la
          vez que otros flujos leen de la tabla. (Esto se conoce como
          inserciones concurrentes.) Un bloque libre puede ser resultado
          de borrar o actualziar registros de longitud dinámica con
          más datos que su contenido. Cuando todos los bloques libres
          se usan (se rellenan), las inserciones futuras vuelven a ser
          concurrentes.
        
          Puede tener el fichero de datos e índice en directorios
          distintos para obtener más velocidad con las opciones
          DATA DIRECTORY y INDEX
          DIRECTORY para CREATE TABLE.
          Consulte Sección 13.1.5, “Sintaxis de CREATE TABLE”.
        
Cada columna de carácteres puede tener distintos conjuntos de carácteres. Consulte Capítulo 10, Soporte de conjuntos de caracteres.
          Hay un flag en el fichero índice MyISAM
          que indica si la tabla se ha cerrado correctamente. Si
          mysqld se arranca con la opción
          --myisam-recover , Las tablas
          MyISAM se chequean automáticamente al
          abrirse, y se reparan si la tabla no se cierra correctamente.
        
          myisamchk marca las tablas como chequeadas
          si se ejecuta con la opción --update-state
          . myisamchk --fast cheque sólo las tablas
          que no tienen esta marca.
        
myisamchk --analyze almacena estadísticas para partes de las claves, así como para las claves enteras.
          myisampack puede comprimir columnas
          BLOB y VARCHAR .
        
      MyISAM soporta las siguientes características:
    
          Soporte de un tipo VARCHAR auténtico; una
          columna VARCHAR comienza con la longitud
          almacenada en dos bytes.
        
          Tablas con VARCHAR pueden tener longitud de
          registro fija o dinámica.
        
          VARCHAR y CHAR pueden
          ser de hasta 64KB.
        
          Un índice hash puede usarse para UNIQUE.
          Esto le permite tener UNIQUE o cualquier
          combinación de columnas en una tabla . (Sin embargo, no puede
          buscar en un índice UNIQUE .)
        
É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.

