Le colonne che non sono indici, sono ordinate su disco insieme all'indice, in MySQL, in MyISAM e InnoDB?
Un pensiero errato che ho iniziato a scrivere:
Penso che probabilmente no, dal momento che non sono indicizzati; se fossero ordinati ciò significherebbe che sono indici.
Ciò non è corretto perché ogni colonna di indice è ordinata in base all'ordine del proprio contenuto, ma chiedo di essere ordinata per ogni riga (o solo per alcune colonne) con l'indice corrispondente.
Per spiegare, dico: questo sarebbe utile per rendere più veloci la selezione di intervalli di righe, che si trovano fianco a fianco, insieme, per i loro indici. Ad esempio, se voglioselect * where id >1000 and id<2000
(potrebbero esserci errori nella sintassi di MySQL, non lo conosco bene), allora la colonna id stessa può essere letta rapidamente dal disco perché probabilmente le sue celle da 1000 a 2000 stanno insieme sul disco fisico . Tuttavia, altri contenuti di colonne corrispondenti agli ID da 1000 a 2000 possono essere scritti in posizioni diverse sul disco fisico. Se fossero anche ordinati, verrebbero letti più velocemente. Penso che forse MySQL ordina automaticamente quelle colonne sul disco fisico, per eseguire tali operazioni.
Sono ordinati in altri tipi di database (PostgreSQL, ecc.)?
27 dicembre: vedo dalle 2 risposte, che nel caso in cui sia presente l'indice cluster / chiave primaria, le righe semplici stesse non sono ordinate sul disco fisico (come pensavo potesse / potesse essere), e anche l'indice cluster è non ordinato, se è b-tree, ho letto di b-tree e vedo che i suoi nodi, a quanto ho capito, rimangono in punti casuali sul disco.