Rumah > pangkalan data > tutorial mysql > Apakah pemprosesan transaksi dalam mysql

Apakah pemprosesan transaksi dalam mysql

青灯夜游
Lepaskan: 2023-01-04 16:31:01
asal
2510 orang telah melayarinya

Dalam mysql, pemprosesan transaksi ialah mekanisme yang digunakan untuk mengurus operasi MySQL yang mesti dilakukan secara berkelompok bagi memastikan pangkalan data tidak mengandungi hasil operasi yang tidak lengkap boleh digunakan untuk mengekalkan integriti pangkalan data. Adalah dijamin bahawa kumpulan operasi MySQL tidak akan dihentikan pada pertengahan jalan, sama ada akan dilaksanakan sepenuhnya atau tidak dilaksanakan sama sekali.

Apakah pemprosesan transaksi dalam mysql

Persekitaran pengendalian tutorial ini: sistem windows7, versi mysql8, komputer Dell G3.

Pemprosesan transaksi

Pemprosesan transaksi boleh digunakan untuk mengekalkan integriti pangkalan data bahawa kumpulan operasi MySQL sama ada dilaksanakan sepenuhnya atau tidak dilaksanakan sama sekali.

Contohnya, dalam sistem pengurusan kakitangan, pemadaman seseorang memerlukan pemadaman bukan sahaja maklumat asas orang itu, tetapi juga maklumat yang berkaitan dengan orang itu, seperti peti mel, artikel, dll. Dalam dengan cara ini, pangkalan data ini Pernyataan operasi membentuk transaksi!

Pemprosesan transaksi ialah mekanisme yang digunakan untuk mengurus operasi MySQL yang mesti dilakukan secara berkelompok bagi memastikan pangkalan data tidak mengandungi hasil operasi yang tidak lengkap. Menggunakan pemprosesan transaksi, anda boleh menjamin bahawa satu set operasi tidak akan dihentikan di tengah jalan, sama ada akan dilaksanakan secara keseluruhan atau tidak dilaksanakan sama sekali (melainkan diarahkan secara jelas) . Jika tiada ralat berlaku, keseluruhan set pernyataan dilakukan (ditulis) ke jadual pangkalan data. Jika ralat berlaku, gulung semula (buat asal) untuk memulihkan pangkalan data kepada keadaan yang diketahui dan selamat.

Secara umumnya, urus niaga mesti memenuhi 4 syarat (ACID):: Atomicity (A tomicity , atau tidak boleh dibahagikan), Ketekalan (Cketekalan), Pengasingan (Saya pengasingan, juga dikenali sebagai kemerdekaan), Kegigihan (Dkebolehtahanan).

  • Atomicity: Semua operasi dalam transaksi sama ada selesai sepenuhnya atau tidak selesai, dan tidak akan berakhir dengan beberapa pautan perantaraan. Jika ralat berlaku semasa pelaksanaan urus niaga, ia akan digulung semula ke keadaan sebelum urus niaga bermula, seolah-olah urus niaga itu tidak pernah dilaksanakan.

  • Ketekalan: Integriti pangkalan data tidak terjejas sebelum transaksi bermula dan selepas transaksi tamat. Ini bermakna bahawa data yang ditulis mesti mematuhi sepenuhnya semua peraturan pratetap, termasuk ketepatan dan penyatuan data, dan pangkalan data seterusnya boleh menyelesaikan kerja yang telah ditetapkan secara spontan.

  • Pengasingan: Pangkalan data membenarkan berbilang urus niaga serentak untuk membaca, menulis dan mengubah suai datanya pada masa yang sama Pengasingan boleh menghalang berbilang urus niaga daripada dilaksanakan secara serentak disebabkan oleh Pelaksanaan silang membawa kepada ketidakkonsistenan data. Pengasingan urus niaga dibahagikan kepada tahap yang berbeza, termasuk baca tanpa komitmen, baca komited, baca berulang dan boleh bersiri.

  • Kegigihan: Selepas transaksi selesai, pengubahsuaian data adalah kekal dan tidak akan hilang walaupun sistem gagal.

1.1 Kata Kunci

Apabila menggunakan transaksi dan pemprosesan transaksi, terdapat beberapa kata kunci yang muncul berulang kali. Berikut ialah beberapa istilah yang perlu anda ketahui tentang pemprosesan transaksi:

  • Transaksi: merujuk kepada satu set pernyataan SQL; ):
  • merujuk kepada proses membatalkan pernyataan SQL yang ditentukan
  • ; komit (komit):
  • merujuk kepada menulis keputusan pernyataan SQL yang tidak disimpan ke pangkalan data jadual;
  • Savepoint:
  • merujuk kepada set pemegang tempat sementara (tempat-tempat) dalam urus niaga, yang mana anda boleh mengeluarkan pemulangan semula (berbeza daripada melancarkan keseluruhan transaksi) .
1.2 Penyata kawalan transaksi

                                                                                                                       >, dan nyatakan dengan jelas bila data harus digulung semula dan bila ia sepatutnya tidak boleh ditarik balik.

1.2.1 MULAKAN TRANSAKSI Mulakan transaksi

MySQL menggunakan pernyataan berikut untuk mengenal pasti permulaan transaksi

:
START  TRANSACTION
Salin selepas log masuk

1.2.2 COMMIT

Penyata am MySQL dilaksanakan dan ditulis terus pada jadual pangkalan data. Ini adalah apa yang dipanggil komit tersirat, iaitu, operasi komit (tulis atau simpan) dilakukan secara automatik .
Walau bagaimanapun, komit tidak berlaku secara tersirat dalam blok transaksi. Untuk membuat komitmen yang jelas, gunakan penyataan COMMIT COMMIT akan melakukan transaksi dan membuat semua pengubahsuaian pada pangkalan data kekal Seperti yang ditunjukkan di bawah:

START TRANSACTION  
DELETE FROM orderitems WHERE order_num = 20010;
DELETE FROM orders WHERE order_num = 20010;
COMMIT;
Salin selepas log masuk

Dalam contoh ini, pesanan 20010 dipadamkan sepenuhnya daripada sistem. Kerana ia melibatkan pengemaskinian dua jadual pangkalan data, pesanan dan item pesanan, blok transaksi digunakan untuk memastikan pesanan tidak dipadamkan sebahagiannya. Pernyataan COMMIT akhir hanya menulis perubahan jika tiada ralat berlaku. Jika DELETE pertama berfungsi tetapi yang kedua gagal, DELETE tidak dilakukan (malah, ia dibatalkan secara automatik).

1.2.3 ROLLBACK

Perintah ROLLBACK MySQL digunakan untuk melancarkan (buat asal) pernyataan MySQL , Seperti berikut:

SELECT * FROM orderitems;
START TRANSACTION        -- 事务开始
DELETE FROM orderitems;
SELECT * FROM orderitems;
ROLLBACK;
SELECT * FROM orderitems;
Salin selepas log masuk

Contoh di atas bermula dengan memaparkan kandungan jadual jumlah pesanan. Mula-mula laksanakan SELECT untuk menunjukkan bahawa jadual tidak kosong. Kemudian mulakan urus niaga
dan padam semua baris dalam jumlah tertib dengan penyataan DELETE. Satu lagi pernyataan SELECT mengesahkan bahawa jumlah pesanan sememangnya kosong. Pada masa ini, gunakan pernyataan ROLLBACK untuk melancarkan semula semua pernyataan selepas MULAKAN URUS NIAGA dan pernyataan SELECT terakhir menunjukkan bahawa jadual tidak kosong.
 Jelas sekali, ROLLBACK hanya boleh digunakan dalam urus niaga (selepas melaksanakan perintah MULA TRANSAKSI) .

Pemprosesan transaksi digunakan untuk mengurus INSERT, UPDATE dan DELETE penyata. Anda tidak boleh memutar balik pernyataan SELECT. (Ini juga tidak masuk akal.) Anda tidak boleh melancarkan operasi CREATE atau DROP. Kedua-dua penyata ini boleh digunakan dalam blok transaksi, tetapi ia tidak akan dibuat asal jika anda melakukan pemulangan semula.

1.2.4 Mata Pengekalan

               Penyata ROLLBACK dan COMMIT yang mudah boleh menulis atau membuat asal keseluruhan transaksi . Walau bagaimanapun, ini hanya boleh dilakukan untuk transaksi mudah;

Untuk menyokong sebahagian daripada transaksi, pemegang tempat mesti diletakkan di lokasi yang sesuai dalam blok transaksi. Dengan cara ini, jika anda perlu berpatah balik, anda boleh kembali kepada pemegang tempat. Pemegang tempat ini dipanggil titik pengekalan . Untuk mencipta ruang letak, gunakan penyataan SAVEPOINT berikut:

SAVEPOINT delete1;
Salin selepas log masuk

Setiap titik simpan mempunyai nama unik yang mengenal pastinya supaya ia boleh digunakan semasa rollback , MySQL tahu ke mana hendak berundur. Operasi berikut boleh kembali ke titik pengekalan yang diberikan:

ROLLBACK TO delete1;
Salin selepas log masuk

1.2.5 Tukar tingkah laku komit lalai

Seperti yang dinyatakan , tingkah laku MySQL lalai adalah untuk melakukan semua perubahan secara automatik. Dalam erti kata lain, pada bila-bila masa anda melaksanakan penyata MySQL, penyataan itu sebenarnya dilaksanakan terhadap jadual, dan perubahan itu berkuat kuasa serta-merta. Untuk mengarahkan MySQL supaya tidak melakukan perubahan secara automatik, anda perlu menggunakan pernyataan berikut:

SET autocommit = 0;
Salin selepas log masuk

Bendera autocommit menentukan sama ada untuk melakukan perubahan secara automatik , tanpa mengira sama ada terdapat pernyataan COMMIT . Menetapkan autocommit kepada 0 (palsu) mengarahkan MySQL untuk tidak melakukan perubahan secara automatik (sehingga autocommit ditetapkan kepada benar).

bendera untuk sambungan Bendera autokomit peribadi adalah untuk setiap sambungan dan bukan untuk pelayan.

1.3 Kaedah pemprosesan transaksi

🎜>Gunakan BEGIN, ROLLBACK, COMMIT untuk melaksanakan

    1)
  • MULAKAN
  • ​​Mulakan urus niaga

2) KEMBALIKAN urus niaga Rollback

3) KOMIT Transaksi pengesahan

Contoh:

  • Gunakan SET terus untuk menukar mod autokomit MySQL:

SET AUTOCOMMIT=0 Lumpuhkan autokomit

TETAPKAN AUTOCOMMIT=1 Hidupkan penyerahan automatik

[Cadangan berkaitan: tutorial video mysql]

Atas ialah kandungan terperinci Apakah pemprosesan transaksi dalam mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan