Ho cercato dump SQL di alcuni CMS famosi, tra cui Drupal 7, Wordpress (una versione piuttosto vecchia) e alcune applicazioni personalizzate basate su Python.
Tutti questi dump contenevano dati con flag di stringa anziché interi. Ad esempio, lo stato di un post è stato rappresentato come published
, closed
o inherit
piuttosto che 1
, 2
o 3
.
Ho un'esperienza piuttosto limitata nella progettazione di database e non ho mai superato semplici SQL, ma mi è stato sempre insegnato che dovrei usare flag numerici / interi per dati come questo. È ovvio che tinyint
consuma molto meno spazio in un database rispetto, ad esempio, a varchar(9)
.
Quindi cosa mi sto perdendo? Non è uno spreco di archiviazione dei dati e una ridondanza dei dati? Navigare, cercare e indicizzare non sarebbe un po 'più veloce se queste colonne usassero numeri interi anziché stringhe?
char
s? Quanto inefficiente!" è obsoleto rispetto al 2015.