Contatta l'assistenza

Rispondiamo per e-mail, di solito entro due giorni.

Per prevenire abusi, Google reCAPTCHA verifica questo invio; alcuni dati vengono trasmessi a Google. Lo script viene caricato solo all'apertura di questo modulo.

← Tutti gli articoli

Tre colonne rimaste da Stats4U 2

Informazioni sui contenuti e sulla loro verifica

In questo articolo

La tabella principale dei contatori ha qui 166.436 righe e alcune colonne che sembrano contare. Tre di esse sono lastdomain, firstdomain e userdomain. Contengono dati:

lastdomainnon vuota in 15.525 righe
firstdomainnon vuota in 15.457 righe
userdomainnon vuota in 2.982 righe
righe di contatore: 166.436lastdomain15.525firstdomain15.457userdomain2.982166.436

Nulla le scrive. Nessuna istruzione in tutto il codice imposta una delle tre. I valori vengono dalla generazione precedente di questo servizio, congelati a com'erano quando ha smesso di girare, e ogni riga creata da allora è vuota.

Perché una colonna riempita a metà si legge peggio di una vuota

Una colonna del tutto vuota è ovviamente morta. Nessuno ci costruisce sopra, nessuno ne ricava rapporti, nessuno passa un pomeriggio a chiedersi cosa significhi.

Una colonna popolata per il 9 % delle righe è una trappola. Sembra un campo che a volte è riempito e a volte no — cosa del tutto ordinaria per una colonna. Chi la trova conclude ragionevolmente che esista una regola che decide quando viene impostata, e si mette a cercare la regola. Non c'è.

E i valori superati non stanno in disparte su righe dormienti, dove non potrebbero fare danno. Fra le righe che portano un lastdomain, 1.613 appartengono a contatori ancora aggiornati quest'anno. Un contatore vivo con un dominio annotato dieci anni fa è identico a un contatore vivo con uno attuale.

Peggio, i dati sono plausibili. Sono domini, sembrano domini di contatori, e un'interrogazione che ci si collega restituisce righe. Risponderebbe a una domanda su un web che è andato avanti.

Come accertarlo in fretta

Cercare le scritture, non il nome. Il nome di una colonna compare in elenchi SELECT, in esportazioni di schema, in vecchie migrazioni, nei commenti — e nulla di ciò dimostra alcunché. A dirimere è se un qualsiasi INSERT o UPDATE la nomina. Quella ricerca dura un minuto ed è conclusiva in un modo in cui leggiucchiare attorno al codice non lo è.

La seconda verifica sono i dati stessi: se la riga più recente con un valore ha anni, la colonna è un fossile, qualunque cosa sembri dire il codice.

Perché sono ancora lì

Rimuovere una colonna costa poco e non è gratis. Ognuna di queste righe appartiene al contatore di qualcuno, alcuni in funzione ininterrotta dal 2006, e il passo sicuro prima di un cambio di schema su una tabella così è una copia che sia stata davvero ripristinata una volta, non una soltanto prodotta. Quella prova è stata poi fatta. Finché rimuoverle non ne vale la pena di per sé, tre colonne inutilizzate non costano altro che un momento di confusione, e la nota descritta più sotto toglie anche quello.

Sono quindi documentate. Non c'è un posto ovvio per quella nota — lo schema di questo database esiste solo nel database in funzione, in nessun file del repository — così è finita dove qualcuno ci inciamperà davvero: nella classe che legge una riga di contatore, proprio dove quelle colonne passano. Una nota in un file che nessuno apre non è documentazione. Trasforma una trappola in una nota a piè di pagina solo se sta sul percorso.

Pubblicità