MySQL Forums
Forum List  »  German

Re: Probleme beim LOCK von Tabellen
Posted by: Thomas Wiedmann
Date: March 29, 2012 05:02AM

Hallo Mike,
in der ersten Nachricht schreibst Du:
20:31:30 UHR 
Thread1: 
Select * From Tabelle1; 

20:31:31 Uhr 
Thread2: 
Lock Tabelle1 WRITE; 
Update something ....; 
Unlock Tables;

Warum brauchst du den LOCK auf die Tabelle? Wenn Du InnodB benutzt, brauchst Du keinen LOCK. LOCK sperrt die gesamte Tabelle. Ein
SELECT * FROM tabelle WHERE x=1 FOR UPDATE
sperrt nur einen Datensatz.

Siehe auch..
13.4.5. LOCK TABLES und UNLOCK TABLES
Beachten Sie die folgenden Angaben zur Verwendung von LOCK TABLES bei transaktionssicheren Tabellen:
• LOCK TABLES ist nicht transaktionssicher und übergibt implizit alle aktiven Transaktionen, bevor versucht wird, die Sperre
für die Tabelle zu erwirken. Auch das Starten einer Transaktion (z. B. bei START TRANSACTION) führt implizit eine
UNLOCK TABLES-Anweisung aus. (Siehe auch Abschnitt 13.4.3, 􀀄Anweisungen, die implizite Commits verursachen“.)
...
...

Letztlich müssen die einzelnen Threads möglichst schnell sein beim Abarbeiten der Datenbankzugriffe. Ob eine SQL-Abfrage schnell ist, kann mit EXPLAIN geprüft werden.

Mir ist nicht klar,wie ich jetzt noch helfen kann.

Grüße
Thomas

Options: ReplyQuote


Subject
Views
Written By
Posted
1972
March 13, 2012 02:01AM
Re: Probleme beim LOCK von Tabellen
1293
March 29, 2012 05:02AM


Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.