Tack det skall jag till mig, det är som sagt ett fulhack..Skall vara ärlig så tog en tabell från ett annat projekt och yxade till det.
Citat:
Ursprungligen postat av Clarence
Det finns en del andra problem med din kod också. De tre jag ser direkt är:
Kolumn-typ för ip-adressen. Lagras denna som varchar(15) tar den upp till 46 bytes med utf8. Alternativet heter INT, kör du ipv4 har du det redan klart i MySQL med INET_NTOA()/INET_ATON(). Med en unsigned int rymmer du alla ipv4 adresser på 4 bytes.
Det andra är att du har en primär-nyckel på ett id för IP-adressen (!?). Det enda det gör här är att göra inserts/updates långsammare. Lägger du istället primärnyckeln på int-representation av ip-adressen blir det mycket kvickare. Sedan bör du använda select banIP och inte select *. På så sätt kan du läsa hela ditt svar från index och behöver inte göra disk-reads (förutsatt att db-servern mår bra).
Du har gjort dig direkt beroende av en tredje part för hela din sajt. Vad händer när de får prestanda-problem, du får routingproblem mot dom eller deras site går ner kl 4 på natten?
|