Pantau Semua Pertanyaan SQL di MySQL
Microsoft SQL Server mempunyai alat yang disebut Profiler yang boleh anda gunakan untuk memantau setiap pertanyaan SQL yang mencatat pangkalan data. Ini amat berguna untuk pengaturcara dan pentadbir pangkalan data untuk menyelesaikan pertanyaan yang tepat yang dihasilkan oleh aplikasi.
Setelah bertukar menggunakan MySQL secara kerap, ini adalah salah satu perkara pertama yang saya ingin tahu cara untuk melakukannya. Bagaimana lagi anda dapat melihat kod SQL sebenar yang dihasilkan oleh WordPress atau phpBB?
Perkara pertama yang perlu kita lakukan ialah mengaktifkan pembalakan pertanyaan dalam MySQL. Beri amaran bahawa ini hanya perlu dilakukan dalam pembangunan ... ia benar-benar melambatkan perkara untuk log setiap pertanyaan ke fail.
Cari dan buka fail konfigurasi MySQL anda, biasanya /etc/mysql/my.cnf di Ubuntu. Cari bahagian yang mengatakan "Pembalakan dan Replikasi"
#
# * Pembalakan dan Replikasi
#
# Kedua lokasi itu diputar oleh cronjob.
# Ketahui bahawa jenis log ini adalah pembunuh prestasi.log = /var/log/mysql/mysql.log
Terangkan saja pemboleh ubah "log" untuk menghidupkan pembalakan. Restart MySQL dengan perintah ini:
sudo /etc/init.d/mysql restart
Sekarang kita sudah bersedia untuk memulakan pemantauan pertanyaan ketika mereka masuk. Buka terminal baru dan jalankan perintah ini untuk menatal fail log, melaraskan laluan jika perlu.
ekor -f /var/log/mysql/mysql.log
Sekarang jalankan permohonan anda. Anda akan melihat pertanyaan pangkalan data yang mula terbang dalam tetingkap terminal anda. (pastikan anda menatal dan sejarah didayakan di terminal)
Saya kagum, phpbb3 mempunyai kod SQL yang agak ketat, dioptimumkan. Sebaliknya, WordPress adalah sangat tidak cekap.