Rumah pangkalan data tutorial mysql 【终身难忘的记忆法】事务隔离级别

【终身难忘的记忆法】事务隔离级别

Jun 07, 2016 pm 03:57 PM
hal ehwal tahap pengasingan

前几天看spring3.x的时候,看到了事务隔离级别那,提到这就要提到五种常见的事务并发问题,就是大家耳熟能详的脏读、幻读、不可重复读、第一类更新丢失、第二类更新丢失。那么今天我就主要来讲最常用的前三类问题,当然,是用最易懂的方式。 首先,什么是脏

前几天看spring3.x的时候,看到了事务隔离级别那,提到这就要提到五种常见的事务并发问题,就是大家耳熟能详的脏读、幻读、不可重复读、第一类更新丢失、第二类更新丢失。那么今天我就主要来讲最常用的前三类问题,当然,是用最易懂的方式。

首先,什么是脏读?

学术解释:脏读就是指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据。

我的解释:你正在做菜,把切好的菜放在一边准备下锅,这时候,妻子告诉你开饭了,然后端着你这堆还没下锅的菜就放到了餐桌上。

什么是不可重复读?

学术解释:不可重复读:是指在一个事务内,多次读同一数据。在这个事务还没有结束时,另外一个事务也访问该同一数据。那么,在第一个事务中的两次读数据之间,由于第二个事务的修改,那么第一个事务两次读到的的数据可能是不一样的。这样在一个事务内两次读到的数据是不一样的,因此称为是不可重复读。

我的解释:当你是一个乐队的指挥,当第一乐章的小提琴独奏开始时,你觉得他非常美妙; 可到了第二乐章小提琴独奏的时候,你发现他消失了,观众告诉你他中途上厕所去了,还没回来。

什么是幻读?

学术解释:是指当事务不是独立执行时发生的一种现象,例如第一个事务对一个表中的数据进行了修改,这种修改涉及到表中的全部数据行。同时,第二个事务也修改这个表中的数据,这种修改是向表中插入一行新数据。那么,以后就会发生操作第一个事务的用户发现表中还有没有修改的数据行,就好象发生了幻觉一样。

我的解释:我同“不可重复读”用同一个场景,当你在演奏第一乐章的时候,你觉得音乐非常美妙,但到了第二乐章的时候,你突然感觉音乐出现了不和谐的声音,然后你发现,乐队突然多了一个鼓手。

不可重复读和幻读的区别?

不可重复读是指你第一次注意乐队里的一个人,第二次看到他时,出现了变化。

幻读是指,你第一次注意的由很多人组成的乐队,当第一次看到这支乐队时,乐队多了一个人。

不可重复读针对的是个人,一条数据。

幻读针对的是集合、多条数据。

最后提一下事务的四个隔离级别,要注意自上而下的顺序,并发速度可是递减的哦。

MySQL5 默认的事务隔离级别为:REPEATABLE-READ

查看 MySQL5 的事务隔离级别:select @@select @@tx_isolation;

修改 MySQL5 的事务隔离级别:set transaction isolation level read committed;

\

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Tamat masa menunggu kunci melebihi; cuba mulakan semula transaksi - Cara menyelesaikan ralat MySQL: tamat masa menunggu transaksi Tamat masa menunggu kunci melebihi; cuba mulakan semula transaksi - Cara menyelesaikan ralat MySQL: tamat masa menunggu transaksi Oct 05, 2023 am 08:46 AM

Lockwaittimeoutceeded;tryrestartingtransaction - Cara menyelesaikan ralat MySQL: transaction wait timeouts Apabila menggunakan pangkalan data MySQL, kadangkala anda mungkin menghadapi ralat biasa: Lockwaittimeoutexceeded;tryrestartingtransaction. Ralat ini biasanya berlaku apabila

Pemprosesan transaksi MySQL: perbezaan antara penyerahan automatik dan penyerahan manual Pemprosesan transaksi MySQL: perbezaan antara penyerahan automatik dan penyerahan manual Mar 16, 2024 am 11:33 AM

Pemprosesan transaksi MySQL: perbezaan antara penyerahan automatik dan penyerahan manual Dalam pangkalan data MySQL, urus niaga ialah satu set penyata SQL sama ada semua pelaksanaan berjaya atau semua pelaksanaan gagal, memastikan ketekalan dan integriti data. Dalam MySQL, urus niaga boleh dibahagikan kepada penyerahan automatik dan penyerahan manual Perbezaannya terletak pada masa penyerahan transaksi dan skop kawalan ke atas transaksi. Berikut akan memperkenalkan perbezaan antara penyerahan automatik dan penyerahan manual secara terperinci, dan memberikan contoh kod khusus untuk digambarkan. 1. Hantar secara automatik dalam MySQL, jika ia tidak dipaparkan

Penjelasan terperinci tentang lokasi pengasingan virus win10 Penjelasan terperinci tentang lokasi pengasingan virus win10 Dec 25, 2023 pm 01:45 PM

Fail yang diasingkan oleh virus Win10 biasanya disimpan di lokasi tetap Ramai pengguna ingin membuka fail yang dikuarantin dan memulihkan fail mereka sendiri, tetapi mereka tidak tahu di mana ia disimpan perisian keselamatan pemacu C. Di manakah fail kuarantin virus win10? Jawapan: Dalam folder C:\ProgramData\Microsoft\WindowsDefender\Quarantine, kita boleh membuka komputer ini dan terus menyalin dan menampal laluan fail ke bar laluan di atas untuk mencarinya. Pengenalan kepada folder pengasingan virus dalam win10: 1. Dalam win10, fail "Kuarantin" biasanya memerlukan kebenaran tertentu untuk membuka fail sebagai pentadbir. 2.

Kuasai kuasa PHP PDO: pertanyaan lanjutan dan kemas kini Kuasai kuasa PHP PDO: pertanyaan lanjutan dan kemas kini Feb 20, 2024 am 08:24 AM

Sambungan Objek Data PHP (PDO) menyediakan interaksi yang cekap dan berorientasikan objek dengan pelayan pangkalan data. Keupayaan pertanyaan dan kemas kini lanjutannya membolehkan pembangun melaksanakan operasi pangkalan data yang kompleks, meningkatkan prestasi dan kebolehselenggaraan kod. Artikel ini akan menyelidiki pertanyaan lanjutan dan fungsi kemas kini PDO dan membimbing anda untuk menguasai fungsinya yang berkuasa. Pertanyaan lanjutan: Menggunakan ruang letak dan parameter terikat Ruang letak dan parameter terikat ialah alat penting untuk meningkatkan prestasi pertanyaan dan keselamatan. Pemegang tempat menggunakan tanda soal (?) untuk mewakili parameter yang boleh diganti dalam pertanyaan, manakala parameter bind membolehkan anda menentukan jenis data dan nilai setiap parameter. Dengan menggunakan kaedah ini, anda boleh mengelakkan serangan suntikan SQL dan meningkatkan prestasi kerana enjin pangkalan data boleh mengoptimumkan pertanyaan lebih awal daripada masa. //Gunakan pemegang tempat $stmt=$

Tutorial PHP PDO: Panduan Lanjutan daripada Asas kepada Penguasaan Tutorial PHP PDO: Panduan Lanjutan daripada Asas kepada Penguasaan Feb 19, 2024 pm 06:30 PM

1. Pengenalan kepada PDO PDO ialah perpustakaan sambungan PHP, yang menyediakan cara berorientasikan objek untuk mengendalikan pangkalan data. PDO menyokong pelbagai pangkalan data, termasuk Mysql, postgresql, oracle, SQLServer, dll. PDO membolehkan pembangun menggunakan API bersatu untuk mengendalikan pangkalan data yang berbeza, yang membolehkan pembangun bertukar dengan mudah antara pangkalan data yang berbeza. 2. PDO menyambung ke pangkalan data Untuk menggunakan PDO untuk menyambung ke pangkalan data, anda perlu mencipta objek PDO terlebih dahulu. Pembina objek PDO menerima tiga parameter: jenis pangkalan data, nama hos, nama pengguna pangkalan data dan kata laluan. Sebagai contoh, kod berikut mencipta objek yang bersambung ke pangkalan data mysql: $dsn="mysq

Prinsip dan senario aplikasi transaksi MySQL Prinsip dan senario aplikasi transaksi MySQL Mar 02, 2024 am 09:51 AM

Prinsip dan senario aplikasi urus niaga MySQL Dalam sistem pangkalan data, urus niaga ialah satu set operasi SQL sama ada semua dilaksanakan dengan jayanya atau semuanya gagal dan digulung semula. Sebagai sistem pengurusan pangkalan data hubungan yang biasa digunakan, MySQL menyokong ciri-ciri transaksi dan boleh memastikan bahawa data dalam pangkalan data adalah konsisten, terpencil, tahan lama dan atom. Artikel ini akan bermula dengan prinsip asas transaksi MySQL, memperkenalkan senario aplikasinya, dan menyediakan contoh kod khusus untuk rujukan pembaca. Prinsip transaksi MySQL: My

Bagaimanakah sambungan pangkalan data Java mengendalikan transaksi dan konkurensi? Bagaimanakah sambungan pangkalan data Java mengendalikan transaksi dan konkurensi? Apr 16, 2024 am 11:42 AM

Transaksi memastikan integriti data pangkalan data, termasuk atomicity, konsistensi, pengasingan dan ketahanan. JDBC menggunakan antara muka Sambungan untuk menyediakan kawalan transaksi (setAutoCommit, commit, rollback). Mekanisme kawalan konkurensi menyelaraskan operasi serentak, menggunakan kunci atau kawalan konkurensi optimis/pesimis untuk mencapai pengasingan transaksi untuk mengelakkan ketidakkonsistenan data.

Apakah teknik pemprosesan transaksi untuk mempelajari MySQL? Apakah teknik pemprosesan transaksi untuk mempelajari MySQL? Jul 30, 2023 pm 10:13 PM

Apakah teknik pemprosesan transaksi untuk mempelajari MySQL? Pengenalan: Transaksi adalah konsep yang sangat penting dalam sistem pengurusan pangkalan data Ia menyediakan mekanisme untuk memastikan integriti dan konsistensi data. Dalam MySQL, transaksi ialah unit pelaksanaan set pernyataan SQL, yang boleh memastikan bahawa semua pernyataan SQL dalam set pernyataan ini sama ada berjaya dilaksanakan atau digulung semula jika semua pelaksanaan gagal. Artikel ini akan memperkenalkan kemahiran pemprosesan transaksi pembelajaran MySQL dan memberikan contoh kod yang sepadan. Mulakan transaksi: Dalam MySQL, anda boleh menggunakan BEGIN dan STARTTRAN

See all articles