Tampilkan dan matikan proses yang sedang berjalan di MySQL
Perintah KILL mengakhiri utas koneksi dengan ID bersama dengan kueri aktif terkait, jika ada. Kemudian, untuk mengidentifikasi kueri untuk dihapus, Anda perlu melihat proses di server - dan perintah SHOW PROCESSLIST akan menjadi solusi yang bagus. Ini bukan cara yang elegan untuk memperbaiki masalah basis data, melainkan alat pilihan terakhir yang efektif. Ada 4 alasan utama untuk itu
- Jika kueri yang berjalan lama menahan transaksi lain dari mengeksekusi kueri Anda yang lebih relevan
- Jika sejumlah besar kueri yang salah memblokir kueri yang layak
- Jika ada proses yatim piatu setelah klien terputus dari server
- Pesan 'Terlalu banyak sambungan'
Biasanya Anda tidak perlu melakukannya, tetapi ketika Anda ingin melihat pertanyaan mana yang saat ini perlu ditangani oleh server MySQL Anda (dan jika ada kunci, dll), Anda dapat mengatakan SHOW PROCESSLIST di shell MySQL
Sayangnya, SHOW PROCESSLIST tidak mengizinkan pemfilteran. Saat Anda menggunakan MySQL ≥ 5. 1. 7, lakukan ini sebagai gantinya
SELECT * FROM information_schema.processlist WHERE command != 'Sleep' ORDER BY id;Itu juga memungkinkan Anda untuk hanya menampilkan beberapa nilai atau memesan secara berbeda, seperti itu
SELECT user, time, state, info FROM information_schema.processlist WHERE command != 'Sleep' ORDER BY time DESC, id;_Contoh lain – lihat semua kueri non-tidur yang memerlukan waktu, misalnya minimal 2 detik
Iklan
- Telegram
- Ada apa
- Skype
- Surel
Seperti ini
Suka Memuat.
Terkait
Setelah server Mysql Anda mendapat masalah dan Anda perlu mengidentifikasi SQL dengan kinerja terburuk, hal pertama yang dilakukan setiap administrator server adalah membuka konsol mysql dan mulai menggali di SHOW PROCESSLIST atau SHOW FULL PROCESSLIST
Di server dengan banyak koneksi bersamaan ke banyak basis data, Anda akan melihat banyak baris dengan perintah dengan teks. Tidur
Pada saat saya berburu sql yang lambat, saya tidak ingin diganggu dengan koneksi yang tidak aktif itu dan saya hanya ingin melihat SQL pembuat masalah yang sebenarnya
Solusi untuk saya pada versi Mysql yang lebih baru adalah tidak menggunakan perintah SHOW PROCESSLIST, tetapi SQL memuat data dari skema informasi
Biasanya Anda tidak perlu melakukannya, tetapi ketika Anda ingin melihat pertanyaan mana yang saat ini perlu ditangani oleh server MySQL Anda (dan jika ada kunci, dll), Anda dapat mengatakan SHOW PROCESSLIST di shell MySQL
Tim pengembangan Anda memiliki backlog penuh?
- Kami membangun solusi cloud yang andal dengan Infrastruktur sebagai kode
- Kami ahli dalam keamanan, Linux dan database
- Kami mendukung tim pengembang Anda untuk tampil
Sayangnya, SHOW PROCESSLIST tidak mengizinkan pemfilteran. Saat Anda menggunakan MySQL ≥ 5. 1. 7, lakukan ini sebagai gantinya
SELECT * FROM information_schema.processlist WHERE command != 'Sleep' ORDER BY id; _Itu juga memungkinkan Anda untuk hanya menampilkan beberapa nilai atau memesan secara berbeda, seperti itu
SELECT user, time, state, info FROM information_schema.processlist WHERE command != 'Sleep' ORDER BY time DESC, id;Satu contoh lagi -- lihat semua kueri non-tidur yang memerlukan waktu, misalnya minimal 2 detik
SELECT user, time, state, info FROM information_schema.processlist WHERE command != 'Sleep' AND time >= 2 ORDER BY time DESC, id; _Petunjuk
Saat memeriksa daftar proses dalam shell mysql, tata letak vertikal seringkali lebih membantu. Gunakan ________15______ sebagai ganti ;