ProXymus Skrevet 6. januar 2005 Skrevet 6. januar 2005 Har laget en teller på siden min. Men nå som tabellen begynner å bli litt stor ser den ut til å gjøre scriptet VELDIG mye tregere. Skjønner selvsagt at den blir tregere men ikke så treg som den er nå.. Kommandoen som tydeligvis gjør at scriptet bruker lang tid er dette: $sql = mysql_query("SELECT DISTINCT(session) FROM `stats`"); $rows = mysql_num_rows($sql); Tabellen den henter fra er på ca 10.000 rader nå. Tellern henter 105 rader. Syns ikke det er mye nok til å senke scriptet så mye som den gjør nå..
Torbjørn Skrevet 6. januar 2005 Skrevet 6. januar 2005 hvis du bare skal telle, kan du bruke queryet: "select count(distinct session) as antall from stats" videre kan det være lurt å indeksere kolonna session. Du vil merke stor forskjell hvis det er det skoen klemmer.
ProXymus Skrevet 11. januar 2005 Forfatter Skrevet 11. januar 2005 $sql = mysql_query("select count(distinct session) as antall from stats"); $db = mysql_fetch_array($sql); echo $db['antall']; Slik?
???????? Skrevet 11. januar 2005 Skrevet 11. januar 2005 (endret) Hvis du likevel henter $db['antall'] så holder det lenge med: $db = mysql_fetch_assoc($sql); Edit: du burde absolutt indeksere slik Torbjør foreslår. Det er kanskje ikke nødvendig å indeksere hele feltet, de første 5 tegnene eller lignende holder kanskje. Prøv deg frem. Endret 11. januar 2005 av ????????
Torbjørn Skrevet 11. januar 2005 Skrevet 11. januar 2005 eller noe elegantere: list($antall) = mysql_fetch_row($sql); # -smakssak
???????? Skrevet 11. januar 2005 Skrevet 11. januar 2005 Mer elegant? Det finnes da vel ikke noe mer elegant enn arrays for en programmerer! Hehe... alle får ha sine meninger da.
Torbjørn Skrevet 11. januar 2005 Skrevet 11. januar 2005 jeg mener at det er elegant å kunne unngå å bruke en array som du bare trenger for å hente ut ett element av, ja list() gir hvertfall en svak "touch" av andre programmeringspråk som ligger over horisonten
ProXymus Skrevet 11. januar 2005 Forfatter Skrevet 11. januar 2005 Takk for hjelp! Satt på indeksering nå på både session og ip. Men hva er egentklig indeksering bra til? Ble vel kansje litt raskere (er ikke sikker)
ProXymus Skrevet 11. januar 2005 Forfatter Skrevet 11. januar 2005 (endret) Det krever forresten en del fortsatt da... Når jeg ikke henter inn dataen er render time 0.069378 Når jeg henter dataen er den 0.201246 Syns det er endel.. Endret 12. januar 2005 av ProXymus
Torbjørn Skrevet 11. januar 2005 Skrevet 11. januar 2005 hvis du har en bok med 1000 sider - vil ikke registeret bakerst hjelpe deg å slå opp nøkkelord kjappere enn å bla gjennom side for side?
ProXymus Skrevet 13. januar 2005 Forfatter Skrevet 13. januar 2005 Skjønner Men fins det ingenting mer jeg kan gjøre for å øke hastigheten ?
LoS Skrevet 13. januar 2005 Skrevet 13. januar 2005 Du kan sette opp ett script som sletter alle sessions som er utgått, med crontab eller noe. Hvis ikke du allerede har fikset noe slikt, da.
???????? Skrevet 13. januar 2005 Skrevet 13. januar 2005 Gjør du det så er det viktig at du holder tungen litt rett i munnen ved valg av tabelltype. For å se hvor mye tid du kan tjene må du teste spørringen i mysql for å få en ekstakt tid på tiden til spørringen. Kanskje har du mer å tjene på å opprette en HEAP tabell - spørringene vil ta kortere tid, men det kan være litt kjedelig å ha en minnebasert tabell dersom mysql kræsjer. Glem ikke å lese om begrensingene til HEAP tabeller. En mye mer vanlig løsning er å bruke MERGE. Da kan du pakke sammen tabellen, og da blir den raskere å lese fra.
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå