Mysql
 sql >> Database >  >> RDS >> Mysql

Più efficiente avere più colonne o più righe?

Fondamentalmente, mysql ha una lunghezza di riga variabile fintanto che non si cambia a livello di tabella. Pertanto, colonne vuote non utilizzeranno alcuno spazio (beh, quasi).

Ma con i BLOB o le colonne di testo, potrebbe essere meglio normalizzarli, poiché potrebbero avere dati di grandi dimensioni da archiviare e questo deve essere letto/saltato ogni volta che viene scansionata una tabella. Anche se la colonna non è nel set di risultati e stai eseguendo query al di fuori di un indice, ci vorrà del tempo su una grande quantità di righe.

Come buona pratica, penso che sarà veloce mettere tutte le colonne amministrative e spesso utilizzate in una tabella e normalizzare tutto il resto. Una sorta di design "verticale" come nel tuo secondo esempio sarà complesso da leggere e non appena lavorerai con tabelle temporanee, prima o poi ti imbatterai in problemi di prestazioni.