Tahap pengasingan Pelayan SQL: perbezaan antara bacaan komited dan bacaan boleh berulang
Tahap pengasingan Baca Komited dan Bacaan Boleh Diulang Pelayan SQL mungkin kelihatan serupa pada pandangan pertama, tetapi terdapat perbezaan yang ketara.
Komited Baca
Read Committed memastikan bahawa sebarang data yang dibaca oleh transaksi dilakukan apabila ia dibaca. Ini menghalang urus niaga daripada melihat "data kotor", iaitu data yang berada dalam keadaan pertengahan semasa transaksi tanpa komitmen. Walau bagaimanapun, baca komited tidak menjamin bahawa bacaan berikutnya bagi data yang sama akan mengembalikan nilai yang sama. Transaksi lain masih boleh mengubah suai atau memadam data yang telah dibaca sebelum transaksi pertama selesai.
Contoh:
- Transaksi A membaca baris dengan nilai '1'.
- Transaksi B mengemas kini baris yang sama kepada '2' dan melakukan.
- Jika transaksi A membaca semula baris sebelum melakukan, ia mungkin melihat nilai lama ('1') atau nilai baharu ('2'), bergantung pada masa.
Bacaan Boleh Diulang
Bacaan berulang memberikan tahap pengasingan yang lebih tinggi, memastikan:
- Data yang dibaca semasa transaksi tidak boleh diubah suai atau dipadamkan oleh transaksi lain sebelum transaksi pertama dilakukan.
- Selagi urus niaga pertama masih tidak terikat, bacaan seterusnya bagi data yang sama akan mengembalikan nilai yang sama.
Contoh:
- Transaksi A membaca baris dengan nilai '1'.
- Transaksi B cuba mengemas kini baris yang sama, tetapi disekat sehingga transaksi A dilakukan.
- Jika transaksi A membaca semula baris, ia akan sentiasa melihat nilai yang sama ('1') sehingga ia dilakukan.
Ringkasan
- Baca yang komited menghalang "bacaan kotor", tetapi tidak menjamin konsistensi bacaan berikutnya.
- Bacaan berulang memastikan ketekalan bacaan berikutnya dan menghalang transaksi lain daripada mengubah suai data yang telah dibaca sebelum transaksi pertama dilakukan.
- Tahap pengasingan yang lebih tinggi memberikan jaminan konsistensi data yang lebih kukuh, tetapi mungkin mengurangkan keselarasan dan prestasi.
Atas ialah kandungan terperinci Tahap Pengasingan Pelayan SQL: Apakah Perbezaan Antara Bacaan Komited dan Bacaan Boleh Ulang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!