login  Naam:   Wachtwoord: 
Registreer je!
 Forum

max aantal query's

Offline CDNC - 31/08/2006 10:45 (laatste wijziging 01/09/2006 13:24)
Avatar van CDNCPHP ver gevorderde Ik ben nu al een tijdje bezig met een forum en heel heel systeem daarrond. Maar ik heb gisteren bij elke mysql_query() $qu++; (om te tellen hoeveel query's ik uitvoer) eens gezet, en dan onderaan de pagina dat getal echo't. Bij somige pagina's vond ik dat getal wel rederlijk groot. Wat is nou eigenlijk de gemiddelde aantal mysql_query()'s die je eigenlijk maar per pagina zou mogen uitvoeren om niet alles plat te gooien?


EDIT: nog een vraagje: is er een mySQL functie zoals de PHP functie: strtolower? (zie ook post2 op pagina2)

15 antwoorden

Gesponsorde links
Offline Voldemort - 31/08/2006 11:09
Avatar van Voldemort PHP ver gevorderde Ik gebruik op sommige pagina's 87 queries (zal ooit wel eens cache doen om dat naar omlaag te brengen) en dat werkt nog. Ik denk dat vanaf de 50 de paginatijd wat zal toenemen, maar niet zoveel hoor. Hoeveel queries heb je op die pagina's soms.
Offline Richard - 31/08/2006 11:15
Avatar van Richard Crew algemeen Je kunt wel een paar honderd op 1 pagina gebruiken zonder significant verlies in snelheid, kijk maar naar phpBB3, met een paar honder queries per pagina (natuurlijk gecached, maar dat is net zo snel)
Offline CDNC - 31/08/2006 11:21 (laatste wijziging 31/08/2006 11:26)
Avatar van CDNC PHP ver gevorderde Nja ik ben nu m'n systeem aan het aanpassen dat ik veel minder nodig heb, eerste had ik er per post (zoals dit dus) 5 nodig -_-'' nu nog 1

5 (/post, is nu al 1 geworden) * 15 (per pagina) + 5 ( firstpost is nu ook al 1 geworden) + 3 statistieken systeem en nog wel een paar denk ik.

voor 3 postinds zat ik al 44 query's nu heb ik al na de verbouwing naar 20 gekregen en dus per extra post op de pagina komt er dus nog maar 1tje bij

op de forum index heb weer zoveel ingebruik, ik gebruik daar zo'n 5 query's per sub-categorie (voor het gelezen/ongelezen systeem)


EDIT: @ hierboven: ok, dan is het goed m'n pagina's vond ik ook nog wel snel laden, ik heb ook wel een betalend domeintjes, bij gratis zal wat wel wat anders zijn.


EDIT2: het gebruik van mysql_free_result() helpt dat ook om de laadtijd (enz) toch nog wat te drukken?
Offline coda - 31/08/2006 16:23 (laatste wijziging 31/08/2006 16:24)
Avatar van coda HTML beginner
Citaat:
Ik gebruik op sommige pagina's 87 queries (zal ooit wel eens cache doen om dat naar omlaag te brengen) en dat werkt nog. Ik denk dat vanaf de 50 de paginatijd wat zal toenemen, maar niet zoveel hoor. Hoeveel queries heb je op die pagina's soms.
w00t 

Hoe kom je in hemelsnaam aan zoveel query's. Gebruik je je query's in een loop ?
Offline CDNC - 31/08/2006 17:50 (laatste wijziging 31/08/2006 17:51)
Avatar van CDNC PHP ver gevorderde Bij forum index ofzo haal je dat gemakkelijk hoor

je WHILE'd eerst de categorie's en in die categorie WHILE je de sub-categorie'en in alle sub-categorie'en.

Laaste bericht (on)-gelezen in sub-cat
Die topics kan wel/geen berichten hebben, indien die er wel heeft, het laatse id ophalen en kijken of die gelzen is. indien er dan geen reacties waren op dat topic, dan kun je of je de openings post heb gelezen. + dan de datum + de posten ophalen

Ergens ongelezen berichten in sub-cat
Alle topics uit die categorie aflopen, bij de nieuwste te beginnen. als je een topic vind kijken of het reacties heeft. zoja dan pak je het laaste id en je kijkt of het gelzen is. als het topic geen berichten had, kijken of het topic gelezen is, en dit dan voor alle sub-categorieen

als je dan 5 categories hebt met elk nog geen eens gemiddled 5 sub-categorie'en dan heb je heel wat query's achter de rug.

wat was mijn logica achten een forum maken, wat me ook gelukt is, maar toen ik zag dat het zoveel query's waren wouw ik weten of dat eigenlijk gezond was.
Offline coda - 31/08/2006 21:35
Avatar van coda HTML beginner Het lijkt me dat je het met een of meerdere INNER JOINS allemaal wel kan indimmen, Ik heb nog nooit een "compleet" forum gemaakt, dus kan er niet echt overmee praten maar vind rond de 80 query's wel extreem veel
Offline ThAlmighty - 31/08/2006 21:55 (laatste wijziging 31/08/2006 21:55)
Avatar van ThAlmighty HTML beginner Ik wil niet de zeikerige omhooggevallen webbuilder uithangen maar ik vindt dit echt tifus veel. Ik raad aan een goed boek over MYSQL te lezen.

Tip: JOINS.

Ik heb er al scheit aan als ik meer als 4 query's per pagina heb 
Offline coda - 31/08/2006 22:54
Avatar van coda HTML beginner
Citaat:
Ik heb er al scheit aan als ik meer als 4 query's per pagina heb 
Same here, hoe minder hoe beter 
Offline xSc - 01/09/2006 08:50 (laatste wijziging 01/09/2006 08:53)
Avatar van xSc Onbekend
Citaat:
natuurlijk gecached, maar dat is net zo snel


Uhm, vreemd ... ? Cachen gebeurt op de achtergrond. Een pagina zonder queries zou toch sneller zijn.

Opmerking: wanneer je joins gebruikt, gaat het aantal queries omlaag, maar het geheel wordt niet sneller. Een join is namelijk trager dan een normale query.

De snelheid hangt verder af van de gegevens die je selecteert. SELECT kolom1, kolom2, kolom3 is doorgaans sneller dan SELECT *. Verder kun je met mysql_free_result() het queryresultaat verwijderen, wanneer je dat niet meer nodig hebt.

Verder speelt de servercapaciteit (en het totale geheugen en het geheugen voor MySQL) een grote rol.
Offline Gerard - 01/09/2006 09:23 (laatste wijziging 01/09/2006 09:23)
Avatar van Gerard Ouwe rakker Ik denk dat de queries gecached zijn en niet het resultaat (dus niet de pagina zelf, maar alleen het resultaat van de query).
Offline xSc - 01/09/2006 09:47
Avatar van xSc Onbekend
Citaat:
maar alleen het resultaat van de query


Dat zeg ik toch ook :$ 
Offline CDNC - 01/09/2006 12:37 (laatste wijziging 01/09/2006 13:27)
Avatar van CDNC PHP ver gevorderde Als ik 2 query's uitvoer, en met met microtime (of hoe dat ook noemt) de parse tijd bekijk, en vergelijk met die 44 query's is deze verdubbeld en niet ver-22-vouwdigd: ik zit dan nog maar 0.02*** seconden. En bij 24 query's (homepage) heb ik een parse time van: 0.0195***. dus 24 <-> 44 doet niet veel.

Maar mijn vraag is NIET wanner JIJ vind dat je JIJ veel query's ehbt uitgevoert maar wanneer het ECHT te veel gaat worden.

EDIT: Heb al al enkele tut's bekeken over JOINS enz. maar ik zie niet echt in hoe ik daardoor véél query's zou uitsparen, en JOINS maken de query's ook niet sneller, dus ik zie niet in waarom ik met joins zou werken als het zonder gaan, en ik heb nog NERGENS "SELECT * FROM" gadaan , ik selecteer enkel wat ik nodig zal hebben.

EDIT2: Bestaat er een MySQL-functie die hetzelfde doet als in PHP strtolower.
om te kijken of een naam/e-mailadress gebant is. en dat het dus niet mogelijk is om de naam 'Me' te gebuiken terwijl 'eM' wel gebant is. Wat imo hetzelfde is en ik niet wil toelaten
Offline Ontani - 01/09/2006 13:32
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
kan van server tot server liggen ma als ge controleerd op Me controleerd hij ook op me, Me, ME en mE.
Offline Richard - 01/09/2006 13:40
Avatar van Richard Crew algemeen In mysql heb je LOWER() hiervoor. Maar binnen MySQL wordt volgens mij sowieso caseless gecontroleerd. (In elk geval bij LIKE)
Offline CDNC - 01/09/2006 14:18
Avatar van CDNC PHP ver gevorderde @ ontani: K zal het eens aan me host vragen ('k heb die mens ook op msn)

@ JeXuS: ok, bedankt, en het geeft geen errors dus het zal wel werken.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.185s