[MYSQL/PHP] Hoge load door script *

Pagina: 1
Acties:

  • EgoH
  • Registratie: Oktober 2001
  • Laatst online: 11-09 21:40
ik heb deze code:
PHP:
1
<?$db = mysql_connect("*", "*", "*");mysql_select_db("database",$db);$query = "select * from tabel order by click desc limit 10";$result = mysql_query($query) or die("Query failed");mysql_close($db);$w="1";while(list($id, $name, $click) = mysql_fetch_row($result)) {echo "<tr width=2%><td width=7%>&amp;nbsp &amp;nbsp $w.</td><td width=35%><centre><a href=javascript:javascript($id)>$name</centre></td><td width=5%></td><td width=10%><centre>$click</centre></td></tr>";$w++;}?>

Dit veroorzaakt echter een gigantische load op de server, is er iets fout in het script?
normaal server load 0.3 als ik deze pagina erop zit meteen 2.5?

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op woensdag 13 maart 2002 13:00 schreef EgoH het volgende:
Dit veroorzaakt echter een gigantische load op de server, is er iets fout in het script?
Dat lijkt me wel dan...
Kijk es naar je query.
normaal server load 0.3 als ik deze pagina erop zit meteen 2.5?
Dat weet jij het beste.

  • EgoH
  • Registratie: Oktober 2001
  • Laatst online: 11-09 21:40
Op woensdag 13 maart 2002 13:01 schreef ACM het volgende:

[..]

Dat lijkt me wel dan...
Kijk es naar je query.
[..]

Dat weet jij het beste.
$query = "select * from tabel order by click desc limit 10"

is die query fout dan??

  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 09-09 14:51

thomaske

» » » » » »

gebruik eens

select id, name, etc

ipv

select *

en kijk ook eens naar de mogelijkheden van indexen

[edit] misschien even proberen om de query direct in je mysql prompt in te voeren, en dan de load in de gaten houden..

Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op woensdag 13 maart 2002 13:03 schreef EgoH het volgende:
$query = "select * from tabel order by click desc limit 10"

is die query fout dan??
Is de query syntactisch fout? Nee
Is de query gebruikstechnisch fout? Ja, lijkt me wel...

Hoe groot is die tabel die je opent?
Hoe vaak wordt dit script aangeroepen als ie online is?

  • EgoH
  • Registratie: Oktober 2001
  • Laatst online: 11-09 21:40
Op woensdag 13 maart 2002 13:04 schreef thomaske het volgende:
gebruik eens

select id, name, etc

ipv

select *

en kijk ook eens naar de mogelijkheden van indexen

[edit] misschien even proberen om de query direct in je mysql prompt in te voeren, en dan de load in de gaten houden..
Nou ik heb alle velden nodig, dat is het niet, maar misschien die instellingen met index ja, dat zou kunnen.
Als ik een grote database heb (in 10 duizenden) en ik wil ze op naam kunnen zoeken, en op id selecteren, wat moet er dan als index staan?

  • EgoH
  • Registratie: Oktober 2001
  • Laatst online: 11-09 21:40
Op woensdag 13 maart 2002 13:06 schreef ACM het volgende:

[..]

Is de query syntactisch fout? Nee
Is de query gebruikstechnisch fout? Ja, lijkt me wel...

Hoe groot is die tabel die je opent?
Hoe vaak wordt dit script aangeroepen als ie online is?
Wat is er dan gebruikstechnisch fout aan?
En hij wordt ongeveer 1 keer in de 3 seconden opgeroepen.

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 12-09 21:31

Janoz

Moderator Devschuur®

!litemod

Op woensdag 13 maart 2002 13:08 schreef EgoH het volgende:

[..]

Nou ik heb alle velden nodig, dat is het niet...
Maar dan nog is een query waarin je je veldnamen benoemd sneller (is laatst wel eens een benchmark topic over geweest)

De * gebruik je alleen waneer je in de sql-console bezig bent. In scripts hoor je eigenlijk ALTIJD je velden te benoemen. Hierdoor wordt je script oa een stuk overzichtelijker.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op woensdag 13 maart 2002 13:11 schreef EgoH het volgende:
Wat is er dan gebruikstechnisch fout aan?
Waarschijnlijk is ie wat zwaar...

Maar dat kan ik zo niet zien, je script doet niets anders dan die query uitvoeren en het resultaat tonen. ALS dit script dus verantwoordelijk voor die hoge load is, MOET het wel die query zijn.

  • EgoH
  • Registratie: Oktober 2001
  • Laatst online: 11-09 21:40
Op woensdag 13 maart 2002 13:15 schreef ACM het volgende:

[..]

Waarschijnlijk is ie wat zwaar...

Maar dat kan ik zo niet zien, je script doet niets anders dan die query uitvoeren en het resultaat tonen. ALS dit script dus verantwoordelijk voor die hoge load is, MOET het wel die query zijn.
De host zei dat some een query 11% van processor kracht opzuigde. Ik snap ik niks meer van.



[edit]

Als ik de top10 eraf haal werkt alles goed, dus uhmm ik zit te denken om hem zeg maar elk uur of elke 2 uur te updaten.
Ik denk dat er dus niks anders opzit dan dat..
Pagina: 1