[+/-]
      MySQL almacena la información de su diccionario de datos de
      tablas en ficheros .frm dentro del directorio
      de cada base de datos. Esto es así para todos los motores de
      almacenamiento de MySQL, pero cada tabla InnoDB
      también tiene su propia entrada en los diccionarios de datos
      internos de InnoDB dentro del espacio de
      tablas. Cuando MySQL elimina una tabla o una base de datos,
      también debe eliminar uno o más ficheros
      .frm, y las correspondientes entradas dentro
      del diccionario de datos de InnoDB. Esta es la
      razón por la cual no se pueden mover tablas entre bases de datos
      sencillamente moviendo los ficheros .frm.
    
      Cada tabla InnoDB tiene un índice especial
      llamado índice agrupado (clustered index) donde se almacenan los
      datos de las filas. Si se define una PRIMARY
      KEY en una tabla, el índice de la clave primaria es el
      índice agrupado.
    
      Si no se define una PRIMARY KEY para la tabla,
      MySQL toma como clave primaria el primer índice
      UNIQUE que tenga solamente columnas
      NOT NULL, al cual InnoDB
      utiliza como índice agrupado. Si no hay en la tabla un índice
      con esas características, InnoDB generará
      internamente un índice agrupado donde las filas estarán
      ordenadas por el identificador de fila (row ID) que
      InnoDB asigna a las columnas en tal tabla. El
      identificador de fila es un campo de 6 bytes que se incrementa
      automáticamente a medida que se agregan nuevas filas. Por lo
      tanto, las filas ordenadas por este identificador están en el
      orden físico de inserción.
    
El acceso a una fila a través del índice agrupado es rápido porque la fila de datos se encuentra en la misma página a donde el índice dirige su búsqueda. Si una tabla es grande, la arquitectura del índice agrupado a menudo ahorra operaciones de E/S en disco en comparación a la solución tradicional. (En muchos servidores de bases de datos, los datos se suelen almacenar en una página diferente que la entrada del índice).
      En InnoDB, las entradas en índices no
      agrupados (también llamados índices secundarios) contienen el
      valor de clave primaria de la fila. InnoDB
      utiliza este valor de clave primaria para buscar la fila a partir
      del índice agrupado. Nótese que si la clave primaria es larga,
      los índices secundarios utilizan más espacio.
    
      InnoDB compara las cadenas
      CHAR y VARCHAR de diferente
      longitud como si el espacio sobrante en cadena la más corta
      estuviera relleno con espacios.
    
É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.

