PDA

Bekijk Volledige Versie : Probleem met mySQL



Michel2k
20/03/05, 19:45
Hoi medeforummers!

Onze mysql server draait met enige regelmaat op 100%. Op deze mysql server draait 1 db voor een bepaalde applicatie. Onze programmeur vertelt mij dat dat komt doordat er een query word uitgevoerd, en deze vroegtijdig word afgebroken. Mijn vragen zijn als volgt;

- Is dit mogelijk?
- Is dit te voorkomen?
- Kan dit komen door in fout in de scripting?
- Kan je de mysql server instellen dat hij na een bepaalde tijd het proces killed?

We hebben het nu op 2 mySQL servers geprobeerd, en op beide komen we met dit probleem.

Graag zie ik jullie reacties,

Groet,

Michel

lifeforms
20/03/05, 20:36
Welk besturingssysteem, welke MySQL versie?

Ik heb dit wel eens meegemaakt met MySQL 3 op FreeBSD. mysqld ging dan naar 100% terwijl er geen queries waren, maar leek nog wel gewoon te werken. Lijkt me een bug, dit mag natuurlijk niet voorkomen.

Met MySQL 4 op FreeBSD ben ik dit probleem nog niet tegengekomen.

Flydesign.nl
20/03/05, 20:37
Als je het op 2 servers getest hebt, dan zal de fout waarschijnlijk liggen aan het script dat de MySQL query uitvoert. Veel gemaakte fouten die voor een hoge load zorgen, zijn het niet afsluiten van de MySQL verbinding (http://php.net/mysql_close) of gebruik maken van mysql_pconnect. Deze laatste mogelijkheid is een aparte manier van verbinding maken, waarbij de verbinding sneller aangemaakt kan worden bij een volgende aanroep. Dit is echter lang niet altijd efficient.

Mocht dit beide niet het geval zijn, ben ik benieuwd om wat voor soort query het gaat. Ga eens na of:

- er onnodige berekeningen worden gemaakt in de query
- de query onnodig vaak aangeroepen wordt
- de tabel waar de query op draait een groot aantal rijen met gegevens bevat.

Succes!

Michel2k
20/03/05, 21:09
Bedankt voor jullie reacties!

Ik ben er inmiddels achter wat het probleem is, de programmeur had gelijk. Ik heb een query uitgevoerd, waar hij zon 30 seconden mee bezig is. (Leest uit een zeer grote DB) Ik heb na 15 seconden het scherm gesloten en het proces bleef inderdaad hangen.

Is dit een instelling in de mysql config waar ik dit mee op kan lossen? Tis een standaard slackware mysql met een aangepaste my.cnf voor meer geheugen.

De Test db server: AMD 2400+, 1gb ram 2x 36GB SCSI RAID1
De live db server: P4 3.0, 1gb ram, 2x 160gb S-ATA.

Allebei draaien slackware (10.0 en 10.1).

svbeek
20/03/05, 23:17
Je kan trouwens ook in mysql een optie aanzetten dat ie langzame queries logt, heet iets van slow query log ofzo, en zo kijken welke queries de problemen veroorzaken.
Verder zou je bijv ook kunnen kijken of je de query niet kan optimaliseren. Gebruik je indexes op de kolommen waarop je een select doet? (even aangenomen dat het een select query is)

vectoris
20/03/05, 23:48
Origineel geplaatst door Michel2k
Bedankt voor jullie reacties!

Ik ben er inmiddels achter wat het probleem is, de programmeur had gelijk. Ik heb een query uitgevoerd, waar hij zon 30 seconden mee bezig is. (Leest uit een zeer grote DB) Ik heb na 15 seconden het scherm gesloten en het proces bleef inderdaad hangen.
Zonder direct het alwetende figuur uit te hangen: maar is het niet een idee om deze query ietwat te optimaliseren? Of indien mogelijk/wenselijk, de table(s) voorzien van indices?

svbeek
21/03/05, 00:07
Verder zou je bijv ook kunnen kijken of je de query niet kan optimaliseren. Gebruik je indexes op de kolommen waarop je een select doet? (even aangenomen dat het een select query is)


Origineel geplaatst door vectoris
Zonder direct het alwetende figuur uit te hangen: maar is het niet een idee om deze query ietwat te optimaliseren? Of indien mogelijk/wenselijk, de table(s) voorzien van indices?

Thats what i said.. :)

Michel_at
26/03/05, 18:19
idd thats it