MySQL Multithreaded, Sperrung beim Lesen der Tabellen
Andi
- datenbank
Hallo,
Gestern ist es bei unserem Programm passiert das eine Query so lange gedauert hat, dass die maximale Anzahl von Verbindungen erreicht wurde. Die Query dauerte solange, weil ein Index falsch gesetzt worden ist.
Ich habe mir dann von MySQL die aktuellen Queries angezeigt. Als erstes war die Query welche solange Zeit in Anspruch genommen hat.
Dahinter waren alles andere Queries.
Was mir auffiel ist, dass die 1. Query welche solange dauerte alle anderen Queries blockiert sprich die Tabelle lockte, obwohl sie nur einen Select-Statement enthielt.
Nun zu meiner Frage:
MfG
Andi
n'abend,
Nun zu meiner Frage:
- Warum sperrt MySQL die Tabellen auch wenn diese nur eine Select ausführen wollen?
waren die wartenden queries ebenfals reading-queries, oder wollten die was schreiben? im writing-queries fall, ist logisch dass die tabelle für read-only gelockt wird. (ich mag mich allerdings auch irren)
- Muss man MySQL oder PHP oder auch Apache expliziet sagen, dass sie mehrere Prozessoren nutzen können
konsultiere doch einfach mal die mysql doku ;)
aber iirc gibts keinen parameter für die anzahl der cpus...
du kannst / sollst aber gewisse andere parameter der anzahl deiner prozessoren anpassen... infos im manual
- Gibt es ein Tool, welches die Auslastung von CPUs auf einem Unix-Server anzeigt
ich bin zwar kein linux guru... aber "top" oder "w" haben mir bisher gereicht...
weiterhin schönen abend...
Hallo,
waren die wartenden queries ebenfals reading-queries, oder wollten die was schreiben? im writing-queries fall, ist logisch dass die tabelle für read-only gelockt wird. (ich mag mich allerdings auch irren)
Die anderen Queries waren auch nur Select-Statements
Gruß
Andi