PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Richtiger Weg zur SQL-Auswahl und -Aktualisierung

Zuerst bei Minimum Sie sollten ein SELECT ... FOR UPDATE durchführen also sperren Sie die Zeilen gegen andere SELECT ... FOR [SHARE|UPDATE] Zugang. Sie müssen dies innerhalb einer Transaktion tun und diese Transaktion halten, bis Sie die letzte Zeile aktualisieren und commit .

Die Zeilen, die Sie SELECT ... FOR UPDATE nicht gesperrt gegen normales SELECT; Sie sind immer noch für andere Transaktionen lesbar, die FOR UPDATE nicht verwenden oder FOR SHARE .

Besser noch, versuchen Sie, das Ganze als UPDATE ... FROM umzuformulieren oder andere satzbasierte Operationen, bei denen Sie die gesamte Arbeit in einer einzigen Abfrage erledigen. Es wird im Allgemeinen eine massiv bessere Leistung erbringen als ein SELECT ... FOR UPDATE gefolgt von einem Strom von UPDATE s.