¿Las columnas que no son índices están ordenadas en el disco junto con el índice, en MySQL, en MyISAM e InnoDB?
Un pensamiento incorrecto que comencé a escribir:
Creo que probablemente no, ya que no están indexados; si se ordenaran, eso significaría que son índices.
Esto no es correcto porque cada columna de índice está ordenada por su propio orden de contenido, pero le pregunto si se ordena de cada fila (o solo de algunas columnas) con su índice correspondiente.
Para explicarlo, digo: esto sería útil para hacer que la selección de rangos de filas, que se encuentran lado a lado, juntas, por sus índices, sea más rápida. Por ejemplo, si quiero select * where id >1000 and id<2000
(puede haber errores en la sintaxis de MySQL, no lo sé bien), entonces, la columna de identificación en sí se puede leer del disco rápidamente porque probablemente sus celdas de 1000 a 2000 permanecen juntas en el disco físico . Pero otro contenido de columna correspondiente a la identificación 1000 a 2000 se puede escribir en diferentes lugares en el disco físico. Si también se ordenan, se leerán más rápido. Creo que tal vez MySQL clasifica automáticamente esas columnas en el disco físico, para el desempeño de tales operaciones.
¿Están ordenados en otros tipos de bases de datos (PostgreSQL, etc.)?
27 de diciembre: veo en las 2 respuestas, que en el caso de que haya una clave primaria / índice agrupada, las filas simples no están ordenadas en el disco físico (como pensé que podría / podría ser), e incluso el índice agrupado es no ordenado, si es b-tree, he leído sobre b-tree y veo que sus nodos, según tengo entendido, permanecen en lugares aleatorios en el disco.
fuente