Rumah  >  Artikel  >  pangkalan data  >  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
WBOYke hadapan
2023-05-26 19:07:052811semak imbas

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';

Tetapkan penyerahan automatik pangkalan data kepada mati melalui SQL

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

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;

Pertanyakan transaksi yang sedang dilaksanakan:

SELECT * FROM information_schema.INNODB_TRX;

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;

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;)

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;

Padam rekod terkunci

ALTER system KILL session 'SID,serial#';

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!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam