Heim >Datenbank >MySQL-Tutorial >MySQL Advanced Ten – Anwendung von Transaktionen

MySQL Advanced Ten – Anwendung von Transaktionen

黄舟
黄舟Original
2016-12-29 16:47:39993Durchsuche

1. Was ist eine Transaktion?

Warum sollten wir Transaktionstechnologie verwenden? Heutzutage sind viele Softwareprogramme für mehrere Benutzer, mehrere Kurse und mehrere Threads geeignet. Um die Konsistenz der Daten zu gewährleisten, wird das Konzept der Transaktionen vorgeschlagen.

1. Prüfen Sie, ob die Datenbank Transaktionen unterstützt (InnoDB unterstützt)?

show engines;

2. Überprüfen Sie die aktuelle Standardspeicher-Engine von MySQL?

show variables like '%storage_engine%';

3. Überprüfen Sie die Speicher-Engine einer bestimmten Tabelle?

show create table test;

4. Änderungen an der Speicherstruktur der Tabelle?

Erstellen Sie eine InnoDB-Tabelle: Create table ... type=InnoDB;Alter table table_name type=InnoDB;

2. Beispiel:

Erstellen Sie eine Datenbankbank

create table account(  
aid int not null,  
accname varchar(20) not null,  
accmoney decimal(10,2) not null,  
primary key(aid))engine = innodb default charset = gbk;

2. Fügen Sie zwei Daten in die Kontotabelle ein

insert into account values(1,'A',4000);  
insert into account values(2,'B',2000);

3 Starten Sie die Transaktion der Tabelle

start transaction;

4 zur aktiven Übermittlung

commit;  
set autocommit = 0;

5. Führen Sie die folgende Anweisung aus

<pre name="code" class="sql">update account set accmoney = accmoney - 1000 where aid = 1;  
update account set accmoney = accmoney + 1000 where aid = 2;

6. Öffnen Sie ein neues MySQL-Befehlsfenster, um die Kontotabelle anzuzeigen

select * from account;

und Sie werden feststellen, dass sich die Daten nicht geändert haben, da die Datenbank keine Änderungsanweisungen ausgegeben hat.

7 Wenn Sie im ursprünglichen Fenster nachfragen, werden Sie feststellen, dass sich die Daten geändert haben 🎜>

select * from account;
8. Senden Sie den physischen Commit

commit;
9. Überprüfen Sie die Daten in einem anderen Client und Sie werden feststellen, dass sich die Daten geändert haben

select * from account;
3 . Transaktions-Rollback und Wiederherstellungspunkt


1. Transaktion Das Rollback

kehrt zum Datenzustand vor der Transaktion zurück. durch Rollback.

Ergänzung: Commit und Chain bedeutet, dass eine neue Transaktion nach dem Commit der Transaktion erneut geöffnet wird.

Rollback und Release bedeutet, dass die Verbindung zum Kunden nach dem Rollback getrennt wird.

2. Wiederherstellungspunkt (Instanz)

set autocommit = 0;  
insert into account values(3,&#39;C&#39;,3000);  
savepoint a1;  
insert into account values(4,&#39;D&#39;,3000);  
savepoint a2;  
insert into account values(5,&#39;E&#39;,3000);  
savepoint a3;
Datenbankinformationen anzeigen

就会看到你插入的数据

如果你想回滚到某一状态只需rollback调用一下就行;

如:回到savepoint a1的状态
rollback to savepoint a1;
und dann die Abfrageanweisung ausführen


Sie wird ein neues Datenelement zur Tabelle hinzugefügt sehen.

4. Transaktionszusammenfassung

Transaktionen sollten 4 Attribute haben:

Atomizität, Konsistenz, Isolation und Haltbarkeit. Diese vier Eigenschaften werden oft als ACID-Eigenschaften bezeichnet.

Atomizität: Eine Transaktion ist eine unteilbare Arbeitseinheit. Alle in der Transaktion enthaltenen Vorgänge werden entweder ausgeführt oder nicht ausgeführt.

Konsistenz: Eine Transaktion muss die Datenbank von einem Konsistenzzustand in einen anderen Konsistenzzustand ändern. Konsistenz und Atomizität hängen eng zusammen.

Isolation: Die Ausführung einer Transaktion kann nicht durch andere Transaktionen beeinträchtigt werden, d. h. die von einer Transaktion verwendeten internen Vorgänge und Daten sind von anderen gleichzeitigen Transaktionen isoliert und gleichzeitig ausgeführte Transaktionen können sich nicht gegenseitig stören.

Haltbarkeit: Auch die Haltbarkeit wird dauerhaft. Sobald eine Transaktion festgeschrieben ist, sollten ihre Änderungen an den Daten in der Datenbank dauerhaft sein. Nachfolgende Operationen oder Ausfälle sollten keine Auswirkungen darauf haben.

Das Obige ist der Inhalt von MySQL Advanced Ten - Transaction Application. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn).



Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn