Wie Multithreading mit MyISAM funktioniert. Wie unterstützt es das Sperren auf Tabellenebene? Wenn wir aus derselben Tabelle auswählen. Wie Threading funktioniert in diesem SzenarioMysql- MyISAM Wie Multi Threading funktioniert
Antwort
Separate Verbindungen erhalten separate Threads. Eine einzelne Verbindung verwendet nicht mehrere Threads. (MyISAM und InnoDB)
Wenn zwei separate Verbindungen (Threads) versuchen, zur gleichen Zeit auf dieselbe Tabelle zuzugreifen, kommt es zu einer Art Sperrung.
SELECT
erwirbt eine Lesesperre, die Schreibvorgänge verhindert, aber keine anderen Lesevorgänge. (MyISAM)
INSERT
und andere Schreibvorgänge erhalten eine Schreibsperre, wodurch verhindert wird, dass irgendetwas (Schreiben oder Lesen) mit der Tabelle arbeitet. (MyISAM)
Wenn eine Verbindung blockiert ist, wartet sie und wird schließlich ausgeführt. (MyISAM)
InnoDB, mit seiner Sperre auf Zeilenebene (und keine Sperre auf Tabellenebene) ermöglicht mehr Gleichzeitigkeit, hat aber andere Komplexitäten.
Ohne einen guten Grund sollte jeder von MyISAM zu InnoDB wechseln.
Zu weit und off topic. – EJP