Andi: MySQL Multithreaded, Sperrung beim Lesen der Tabellen

Beitrag lesen

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:

  • Warum sperrt MySQL die Tabellen auch wenn diese nur eine Select ausführen wollen?
  • Muss man MySQL oder PHP oder auch Apache expliziet sagen, dass sie mehrere Prozessoren nutzen können
  • Gibt es ein Tool, welches die Auslastung von CPUs auf einem Unix-Server anzeigt

MfG
Andi