Rumah > pangkalan data > tutorial mysql > Bagaimana untuk menyelesaikan masalah pangkalan data MySQL yang tersekat semasa melaksanakan Kemas Kini

Bagaimana untuk menyelesaikan masalah pangkalan data MySQL yang tersekat semasa melaksanakan Kemas Kini

WBOY
Lepaskan: 2023-05-26 19:07:05
ke hadapan
2862 orang telah melayarinya

Analisis Masalah

Biasanya masalahnya ialah urus niaga pangkalan data tidak diserahkan, menyebabkan kemas kini atau pemadaman tersekat.

Penyelesaian

  1. Selepas melakukan kemas kini atau pemadaman, ingat untuk melakukan transaksi;

  2. Cari pelanggan pangkalan data , lakukan melakukan operasi.

Jika masih tidak berkesan. Apabila pangkalan data gagal melaksanakan operasi data atau transaksi tidak dilakukan, ia mengunci pernyataan SQL yang perlu dilaksanakan.

Proses Pengeluaran Semula dan Penyelesaian

Semak status penyerahan automatik pangkalan data melalui arahan berikut

show variables like 'autocommit';
Salin selepas log masuk

Tetapkan penyerahan automatik pangkalan data kepada mati melalui SQL

-- on为开启,off为关闭
set autocommit=off;
-- 或者1为开启,0为关闭
set autocommit=0;
Salin selepas log masuk

Jadual Data adalah seperti berikut:

Bagaimana untuk menyelesaikan masalah pangkalan data MySQL yang tersekat semasa melaksanakan Kemas Kini

Buka dua tetingkap untuk melaksanakan operasi kemas kini masing-masing

update car set color ='银色' where id = 1;
update car set color ='红色' where id = 1;
Salin selepas log masuk

Pertanyakan transaksi yang sedang dilaksanakan:

SELECT * FROM information_schema.INNODB_TRX;
Salin selepas log masuk

Bagaimana untuk menyelesaikan masalah pangkalan data MySQL yang tersekat semasa melaksanakan Kemas Kini

Menurut ID utas (trx_mysql_thread_id) transaksi dalam gambar, kita dapat melihat utas mysql yang sepadan: satu ialah 1084 (kemas kini sedang menunggu kunci) dan satu lagi ialah 1089 (kemas kini sedang dilaksanakan tanpa melakukan transaksi)

Anda boleh menggunakan arahan mysql untuk mematikan benang: kill thread id

kill 1089;
Salin selepas log masuk

Jika benang yang memegang kunci tidak dimatikan dalam tempoh tersebut: maka kemas kini kedua Pernyataan akan menggesa tamat masa kunci tunggu.

Bagaimana untuk menyelesaikan masalah pangkalan data MySQL yang tersekat semasa melaksanakan Kemas Kini

Arahan berkaitan:

-- 查看正在锁的事务
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS; 

-- 查看等待锁的事务
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;
-- 查询mysql数据库中存在的进程
select * from information_schema.`PROCESSLIST`(show processlist;)
Salin selepas log masuk

Dilanjutkan

Mod operasi Oracle:

Pertanyaan rekod terkunci

SELECT s.sid, s.serial# FROM v$locked_object lo, dba_objects ao, v$session s WHERE ao.object_id = lo.object_id AND lo.session_id = s.sid;
Salin selepas log masuk

Padam rekod terkunci

ALTER system KILL session 'SID,serial#';
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan masalah pangkalan data MySQL yang tersekat semasa melaksanakan Kemas Kini. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
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