"Henrik Pedersen" <hp@beone.dk> writes:
> igennem - bare for en sikkerheds skyld. Jeg har oplevet, at den begynder at
> blande nogle outputs sammen - outputs som kommer fra forskellige tabeller -
> og jeg er da ellers flnik til at opdatere PHP'en på serveren.....??
Det har absolut intet at gøre med at opdatere PHP på serveren. Ingen
af de PHP versioner jeg har arbejdet med har haft en sådan bug; og
hvis en version havde haft en sådan bug, ville den ganske givet blive
rettet _hurtigt_.
> Nu skal jeg ikke ligge skjul på, at jeg ikke er verdensmester til PHP - og
> jeg har aldrig hørt om "persistent connections" (med mindre jeg har set
> noget om det udtalt anderledes). Jeg kunne godt lige tænke mig at få en kort
> forklaring på hvad det er, og evt. også på hvordan det virker.
Ved mysql_connect lukkes forbindelsen til MySQL når siden er sendt til
browseren (med mindre du selvfølgelig lukker den manuelt).
Ved mysql_pconnect lukkes forbindelsen til MySQL ikke. PHP genbruger
så at sige forbindelsen, hvis andre sider connecter med de samme
parametre til mysql_pconnect (dvs. samme host, brugernavn og
password).
Fordelen er naturligvis, at du undgår overheads i forbindelse med at
oprette forbindelser til MySQL. Dette _kan_ være en performance fordel
(men er det ikke altid).
Ulempen er, at du får oprettet en masse forbindelser til MySQL, som du
ikke lukker.
Der er altså tale om et trade off mellem at åbne/lukke forbindelser
(gør PHP hurtigere), og at have mange forbindelser åbne til MySQL (kan
sløve MySQL ned).
> Jeg tror det
> kan have min interesse, da jeg ofte har performance-problemer på sitet (jeg
> siger ikke at det ikke kan skyldes noget andet
Med mindre du har _mange_ besøgende, er det nok ikke lige der, du vil
kunne høste de største benefits.
> Med hensyn til performance, så hører jeg ofte - "husker du at optimere din
> MySQL-database". Jo, tak - jeg ved godt hvad optimering er, men hvad menes
> der lige præcis med dette.
Der menes vel, at man sørger for at have sin database passende
normaliseret (slå det op på Google), at man søger for at tænke sig om
når man laver sine queries og at man husker at oprette fornuftige
indices på sin database.
Den optimering man kan få mange databaser til at lave på "selve filen"
(eller hvordan man nu skal udtrykke) er normalt ikke en "showstopper",
med mindre du har mange ændringer i din database, store mængder data
eller mange besøgende. I øvrigt sker den slags til en vis grad
automatisk med nogle DBMS.
For at optimere din side mht. databaser, skal du altså kigge på at:
1) Normalisere dine tabeller passende.
2) Sørge for aldrig at SELECT'e mere end du bruger.
3) Lave queries der udnytter infomationer i flere tabeller, istedet
for at lave en query til hver tabel, som så "flettes sammen" i dit
programmeringssprog.
4) At oprette de indices (index'er), som dine queries fordrer.
Det er ihvertfald nogle gode råd til at starte med.
--
Jens Kristian Søgaard, Mermaid Consulting ApS,
jens@mermaidconsulting.dk,
http://www.mermaidconsulting.com/