Transaksi ialah unit pelaksanaan logik yang terdiri daripada urutan operasi pangkalan data N-step ini sama ada dilaksanakan sepenuhnya atau dibatalkan.
ACID
ciri urus niaga:
Atomicity: Transaksi ialah badan pelaksanaan terkecil yang tidak boleh dibahagikan dalam aplikasi
Kegigihan: Sebaik sahaja transaksi diserahkan, sebarang pengubahsuaian pada data mesti direkodkan dalam storan kekal Sederhana
3. Pengasingan transaksi
Bacaan kotor, bacaan tidak boleh diulang, bacaan hantu
Tahap pengasingan biasa
Baca Tidak Komited: Baca data tidak komited
Baca Komited: Baca data komited
Baca Berulang: Bacaan Berulang
Boleh Bersiri: Pensiri
Jenis kerugian kemas kini pertama: pemulangan semula transaksi mengakibatkan kehilangan data yang dikemas kini oleh transaksi lain .
Bacaan kotor: Transaksi tertentu membaca data tidak terikat daripada transaksi lain.
Bacaan hantu: Untuk transaksi tertentu, bilangan baris yang ditanya sebelum dan selepas jadual yang sama adalah tidak konsisten.
4. Pengurusan transaksi Mekanisme pelaksanaan Kunci pesimis (pangkalan data)隔离级别 | 第一类丢失更新 | 脏读 | 第二类丢失更新 | 不可重复读 | 幻读 |
---|---|---|---|---|---|
Read Uncommitted | 是 | 是 | 是 | 是 | 是 |
Read Commited | 否 | 否 | 是 | 是 | 是 |
Repeatable Read | 否 | 否 | 否 | 否 | 是 |
Repeatable Read | 否 | 否 | 否 | 否 | 否 |
Kunci eksklusif (kunci X): Transaksi A telah Selepas kunci eksklusif ditambahkan pada data tertentu, transaksi lain tidak boleh menambah kunci kongsi atau kunci eksklusif pada data.
Kunci optimistik (tersuai)
Nombor versi, cap masa, dsb.
Mengemas kini Sebelum mendapatkan semula data, semak sama ada nombor versi telah berubah. Jika perubahan berlaku, batalkan kemas kini ini, jika tidak, kemas kini data (nombor versi + 1)
Pengurusan transaksi musim bunga
Isytihar ciri urus niaga kaedah melalui anotasi.
Transaksi terprogram
Urus transaksi melalui TransactionTemplate dan lakukan operasi pangkalan data melaluinya.
5
Atas ialah kandungan terperinci Analisis contoh pengurusan transaksi SpringBoot. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!