Kreiptis pagalbos

Atsakome el. paštu, dažniausiai per dvi dienas.

Google reCAPTCHA tikrina šį pateikimą, kad apsaugotų nuo piktnaudžiavimo; duomenys siunčiami Google. Scenarijus įkeliamas tik atvėrus šią formą.

← Visi įrašai

Trys iš Stats4U 2 likę stulpeliai

Apie turinį ir jo patikrą

Šiame straipsnyje

Pagrindinėje skaitiklių lentelėje čia yra 166 436 eilutės ir nemažai svarbiai atrodančių stulpelių. Trys iš jų – lastdomain, firstdomain ir userdomain. Juose yra duomenų:

lastdomainnetuščias 15 525 eilutėse
firstdomainnetuščias 15 457 eilutėse
userdomainnetuščias 2 982 eilutėse
skaitiklių eilutės: 166 436lastdomain15 525firstdomain15 457userdomain2 982166 436

Niekas į juos nerašo. Nė vienas sakinys visame kode nenustato nė vieno iš šių trijų. Reikšmės likusios iš ankstesnės šios paslaugos kartos, sustingusios ties tuo, kokios buvo jai nustojus veikti, o kiekviena nuo to laiko sukurta eilutė yra tuščia.

Kodėl pusiau užpildytą stulpelį skaityti sunkiau nei tuščią

Visiškai tuščias stulpelis akivaizdžiai miręs. Niekas juo nesiremia, iš jo nekuria ataskaitų ir neleidžia popietės svarstydamas, ką jis reiškia.

Stulpelis, užpildytas 9 % eilučių, yra spąstai. Jis atrodo kaip laukas, kuris kartais užpildomas, o kartais ne — tai visai įprasta stulpeliui. Jį radęs žmogus pagrįstai nusprendžia, kad yra taisyklė, kada jį nustatyti, ir pradeda jos ieškoti. Jos nėra.

O pasenusios reikšmės nėra paslėptos neveikliose eilutėse, kur negalėtų pakenkti. Iš eilučių, turinčių lastdomain, 1 613 priklauso skaitikliams, kurie dar atnaujinti šiemet. Veikiantis skaitiklis su prieš dešimtmetį įrašytu domenu atrodo lygiai taip pat kaip veikiantis skaitiklis su dabartiniu.

Dar blogiau, duomenys įtikimi. Tai domenai, jie atrodo kaip skaitiklių domenai, o pagal juos sujungianti užklausa grąžina eilutes. Ji atsakytų į klausimą apie jau pasikeitusį žiniatinklį.

Kaip greitai nustatyti

Ieškokite įrašymo operacijų su grep, o ne pavadinimo. Stulpelio pavadinimas pasitaiko SELECT sąrašuose, schemų išklotinėse, senose migracijose, komentaruose — visa tai nieko neįrodo. Lemiamas dalykas – ar jį mini kuris nors INSERT arba UPDATE sakinys. Tokia paieška trunka minutę ir pateikia galutinį atsakymą, kurio negaunama vien skaitinėjant aplinkinį kodą.

Antra patikra – patys duomenys: jei naujausia reikšmę turinti eilutė yra daugelio metų senumo, stulpelis yra fosilija, kad ir ką, regis, sakytų kodas.

Kodėl jie tebėra

Pašalinti stulpelį pigu, bet ne nemokama. Kiekviena šių eilučių priklauso kieno nors skaitikliui, kai kurie jų be pertraukos veikia nuo 2006 m., o saugus žingsnis prieš keičiant tokios lentelės schemą – išklotinė, kuri bent kartą iš tiesų atkurta, o ne tik pagaminta. Nuo to laiko toks bandymas jau atliktas. Kol jų šalinimas nėra vertas atskiro darbo, trys nenaudojami stulpeliai nekainuoja nieko, išskyrus akimirką painiavos, o toliau aprašyta pastaba pašalina net ją.

Todėl vietoj to jie dokumentuoti. Akivaizdžios vietos pastabai nėra — šios duomenų bazės schema egzistuoja tik veikiančioje duomenų bazėje, o ne kokiame nors saugyklos faile, — todėl ji atsidūrė ten, kur kas nors iš tiesų užklius: klasėje, skaitančioje skaitiklio eilutę, ties vieta, pro kurią eina stulpeliai. Pastaba faile, kurio niekas neatveria, nėra dokumentacija. Ji paverčia spąstus išnaša tik tada, jei yra kelyje.

Reklama