Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Sind mehrere mysql-Einfügungen innerhalb einer einzelnen Abfrage atomar?

ACID Eigenschaften (Atomizität, Konsistenz, Isolation, Dauerhaftigkeit) werden verwendet, um ein solches Verhalten in Datenbanken zu beschreiben. Atomizität ist nur wichtig, wenn wir es mit gleichzeitigen Änderungen zu tun haben . Um Konsistenz zu gewährleisten, muss ein gewisses Isolationsniveau erreicht werden. Je isolierter mehrere Transaktionen jedoch ablaufen, desto weniger Performance hat das DBMS in der Regel. Es gibt also die sogenannte "Isolationsstufe ", die angibt, welche Fehler möglicherweise in einem DBMS auftreten können und welche nicht.

Jetzt implementiert MySQL alle Isolationsstufen in INNODB-Datenbanken, und Sie können für jede Transaktion auswählen:https://dev.mysql.com/doc/refman/5.1/en/set-transaction.html

MyIsam-Datenbanken unterstützen keine Transaktionen, einzelne Operationen sollten jedoch atomar ablaufen. (Quelle:https://dev.mysql. com/doc/refman/5.0/en/ansi-diff-transactions.html ). Beachten Sie jedoch, dass dies NICHT garantiert, dass Daten zwischen den Lese- und Schreibvorgängen in einem Vorgang nicht geändert werden - Atomizität in DBMS-Begriffen bedeutet nur, dass der Vorgang entweder vollständig ausgeführt oder vollständig übersprungen wird. Es garantiert KEINE Isolation, Konsistenz oder Haltbarkeit.