MySQL: SELECTs und gleichzeitige INSERTs
Peter M.
- datenbank
Hallo,
wir haben hier 4 gr. Tabellen von 100MB bis 18GB mit Untertabellen.
Darin werden gleichzeitig einige Inserts gemacht und auch Selects.
Jetzt kommt es aber in unserer Webapplikation oft vor, dass Requests hängen bleiben wenn gleichzeitig Inserts und Selects auf diese Tabellen losgehen.
Kann es sein, dass die Tabellen beim Insert gesperrt werden, sodass keine Selects gemacht werden können?
Es sind natürlich auch einige Indices auf den Tabellen.
Wie könnte man dieses Problem umgehen?
Linux Debian
Mysql 5
lg
Peter
Hello,
dein Suchstichwort lautet Isolation. Inwiefern du woran drehen möchtest, kann ich dir schwer beantworten, dazu muss man den Kontext der Anwendung kennen.
MfG
Rouven
Hallo,
sorry, wegen meinem doppelten Posting 3 Std. später, aber ich dachte, dass es sich nun um etwas total Anderes handelt, daher hatte ich es so gemacht. Wird nicht wieder vorkommen, sorry nochmals.
Also hier meine weitere Frage:
wie kann ich gleichzeitig ein Insert in eine Tabelle machen, wenn ein SELECT darauf ausgeführt wird.
Das SELECT dauert aber sehr, sehr lange, daher ist die Tabelle dem anschein nach für das insert gesperrt und ich muss so lange warten, bis das SELECT fertig ist.
lg
Peter
Hallo Peter,
Deine Angaben sind reichlich vage und wie Rouven bereits anmerkte, kann man Dir in Deinem Fall wenig mehr Hilfestellung geben, als ein paar Links zum Handbuch.
wie kann ich gleichzeitig ein Insert in eine Tabelle machen, wenn ein SELECT darauf ausgeführt wird.
Welche Storage Engine?
Das SELECT dauert aber sehr, sehr lange, daher ist die Tabelle dem anschein nach für das insert gesperrt und ich muss so lange warten, bis das SELECT fertig ist.
Das MySQL-Handbuch hat ein Kapitel Optimization, das Dich grundsätzlich interessieren sollte. Besonders empfehlenswert ist die Lektüre von
Abschnitt 6.2 Optimizing SELECT and Other Statements und natürlich
Abschnitt 6.3 Locking Issues, ganz speziell vielleicht
Abschnitt 6.3.3 Concurrent Inserts.
Vielleicht bringen Dich die Abschnitte 6.4 Optimizing Database Structure oder 6.5. Optimizing the MySQL Server weiter.
Nein, mehr als diese generellen Tipps kann man bei Deinen Angaben nicht machen. DB-Tuning hängt unter anderem sogar von den vorhandenen Daten ab ...
Freundliche Grüße
Vinzenz