Vise nr nedover på en liste. PHP.!

En tråd i 'PHP, SQL og databaser' startet av Mr Vest, 23 Aug 2009.

  1. Mr Vest

    Mr Vest Sjefen over alle sjefer!

    Innlegg:
    2.079
    Hehe, verre er det altså ikke... Hehe, ryktepoeng gitt Jebbis! :D
     
  2. Mr Vest

    Mr Vest Sjefen over alle sjefer!

    Innlegg:
    2.079
    Ja, det glemte jeg bort. Om noen har alternative løsninger på * som ikke er bra for større databaser må jo gjerne poste i tråden. Hadde jo vært greit og få det med her også. :)
     
  3. olafmoriarty

    olafmoriarty Medlem

    Innlegg:
    751
    Alternativet til * i mysql select er å faktisk nevne de kolonnene man trenger. Skal du ha en tabell over navn og e-postadresser, kan man for eksempel skrive 'SELECT navn,epost FROM tabell' i stedet for 'SELECT * FROM tabell'.

    En annen ting det er smart å huske når det gjelder ytelse er å bruke WHERE for å avgrense resultatene der man kan. For eksempel: Dersom du ønsker å trekke ut alle e-postadressene for å lage en liste over e-postadresser du kan kopiere inn i Outlook og sende reklame til, vil kanskje 'SELECT epost FROM tabell' virke som den åpenbare queryen å sende, men dersom du har en del brukere som ikke har en e-postadresse registrert vil du kunne få et bedre resultat av å bruke 'SELECT epost FROM tabell WHERE epost != \'\'' eller noe sånt. Alle de blanke radene vil du jo måtte strippe bort i PHP uansett. På samme måte: Er du bare interessert i rader med en dato som er nyere enn en måned, er det mye kjappere å bare gjøre denne avgrensingen i MySQL med en gang i stedet for å hente ut alle rader i tabellen og bruke PHP til å filtrere ut de som er for gamle.
     
    Mr Vest og Tonny Kluften liker dette.
  4. Mr Vest

    Mr Vest Sjefen over alle sjefer!

    Innlegg:
    2.079
    Jeg er litt imponert her. Jeg forstod jo faktisk hva du skrev Olaf. :D

    Ellers, hva tenker du når du sier stor og omfattende database? Mener du stor database med tanke på MB?
     
  5. olafmoriarty

    olafmoriarty Medlem

    Innlegg:
    751
    Er faktisk ikke helt sikker på om problemet ligger i MB eller om det ligger i antall rader -- sannsynligvis er det MB det er snakk om -- kan bare si av egen erfaring at når databasen begynte å bli stor, begynte scriptene å henge seg fordi de ikke klarte å å behandle all informasjonen før timeout. Jeg gikk inn i scriptet og endret fra SELECT * til SELECT aktuelle_kolonner, og da fungerte det helt utmerket igjen.
     
  6. Mr Vest

    Mr Vest Sjefen over alle sjefer!

    Innlegg:
    2.079
    Japps, får endre på det en gang i tiden. Er altfor lat til slikt på en kul drittdag som denne. :)
     

Del denne siden