Buka pengelola tugas server dan temukan bahwa proses CPU selalu 99%, dan tampilan ditempati oleh proses mysql, yang tinggi.
Output perintah daftar proses menunjukkan utas mana yang sedang berjalan, dan Anda dapat memeriksa status database yang sedang berjalan saat ini.
1. Buka direktori mysql/bin dan masuk ke daftar proses mysqladmin; 2. Mulai mysql dan masuk ke show processlist. Jika Anda memiliki izin SUPER, Anda dapat melihat semua utas, jika tidak, Anda hanya dapat melihat utas akun Anda.
Arti dan tujuan dari setiap kolom
id: Pengidentifikasi user: menampilkan pengguna saat ini, jika bukan root, perintah ini hanya akan menampilkan pernyataan SQL dalam izin Anda. host: menunjukkan IP mana pernyataan ini berasal dari port mana db: Menampilkan database yang saat ini terhubung dengan proses. perintah: Menampilkan perintah yang dijalankan oleh koneksi saat ini, biasanya tidur, kueri, dan sambungkan. waktu: Waktu status ini berlangsung, dalam hitungan detik. state: Menampilkan status pernyataan sql yang menggunakan koneksi saat ini, tetapi hanya status tertentu dalam eksekusi pernyataan, pernyataan sql, yang telah dikueri, misalnya, mungkin perlu melalui penyalinan ke tabel tmp, Hasil pengurutan, Mengirim data, dll info: Menampilkan pernyataan SQL ini, karena panjangnya terbatas, sehingga pernyataan SQL yang panjang tidak ditampilkan sepenuhnya, tetapi merupakan dasar penting untuk menilai pernyataan masalah.
Ditemukan bahwa ada dua pernyataan kueri SQL yang memakan waktu terlama dan belum dieksekusi selama lebih dari 1000 detik, dan pernyataan SQL yang kami salin dari bidang info adalah kueri bersama, sebagai berikut:
pilih cast(count(*) sebagai SIGNED) sebagai col_0_0_ dari ratedpasse0_ 'RatedPassenger', 'BaseInfoCompany' baseinfoco1_, 'OrderMatch' ordermatch2_ di mana baseinfoco1_. Id Perusahaan=ratedpasse0_. CompanyId dan ordermatch2_. OrderId=ratedpasse0_. ID Pesanan Kami mematikan proses dua pernyataan kueri ini
Setelah menunggu selama 10 detik, saya menemukan bahwa CPU telah turun banyak, tetapi masih sangat tinggi, dan saya akan terus menanyakan alasannya!
Untuk pernyataan kueri gabungan gabungan, tambahkan indeks ke bidang terkait atau ubah kode kueri program. Membuat pernyataan SQL indeks
Akhir
|