sql >> Database teknologi >  >> RDS >> Mysql

VÆLG FOR OPDATERING, der holder hele tabellen i MySQL i stedet for række for række

Standardisolationsniveauet for InnoDB-tabeller kan gentages. Når dette isolationsniveau er aktivt får vi følgende adfærd (citat fra:https://dev.mysql.com/doc/refman/5.5/en/set-transaction.html ):

Med andre ord:kan du prøve at bruge den primære nøgle i tilstanden WHERE i SELECT? Så for eksempel i stedet for:

START TRANSACTION;
SELECT * FROM productMacAddress WHERE status='free' limit 8 FOR UPDATE;

Prøv:

START TRANSACTION;
SELECT * FROM productMacAddress WHERE id=10 FOR UPDATE;

hvis id er den primære nøgle. Enhver anden kolonne med et unikt indeks ville også fungere. Når du bruger ikke-unikke kolonner i din WHERE-sætning, låser InnoDB en række rækker.




  1. Vælg et indlæg, der ikke har et bestemt tag

  2. codeigniter aktive poster slutte sig til at bruge?

  3. vis mysql newline i HTML

  4. Understøtter PostgreSQL accentufølsomme sammenstillinger?