MySQL ialah sistem pengurusan pangkalan data hubungan sumber terbuka yang digunakan secara meluas dalam pelbagai senario aplikasi. Apabila menggunakan MySQL, analisis log data ialah teknologi yang sangat penting yang boleh membantu kami mengoptimumkan prestasi pangkalan data, menyelesaikan masalah, dsb. Artikel ini akan memperkenalkan beberapa teknik analisis log data yang biasa digunakan untuk membantu pembaca menggunakan MySQL dengan lebih baik.
Log pertanyaan lambat ialah jenis log yang sangat penting dalam MySQL Ia boleh merekodkan pernyataan SQL yang masa pelaksanaannya melebihi ambang yang ditentukan. Dengan menganalisis log pertanyaan perlahan, kami boleh mencari sumber kesesakan prestasi pangkalan data dan mengoptimumkannya.
Pertama, anda perlu mendayakan fungsi log pertanyaan perlahan dalam fail konfigurasi MySQL. Tambahkan konfigurasi berikut dalam fail my.cnf:
slow_query_log = 1
slow_query_log_file = /var/log/mysql/mysql-slow.log
long_query_time = 2
The konfigurasi di atas Menunjukkan bahawa fungsi log pertanyaan perlahan didayakan dan fail log pertanyaan perlahan ditulis ke fail /var/log/mysql/mysql-slow.log Pernyataan bahawa pertanyaan selama lebih daripada 2 saat akan direkodkan. Ambang masa pertanyaan di sini harus dilaraskan mengikut situasi sebenar.
Apabila konfigurasi selesai, MySQL akan merekodkan setiap pernyataan SQL yang masa pelaksanaannya melebihi ambang ke dalam fail log pertanyaan perlahan. Seterusnya, kita boleh menggunakan alatan (seperti mysqldumpslow) untuk menganalisis log dan mencari kesesakan dalam pernyataan pertanyaan.
Sebagai contoh, berikut ialah sampel log pertanyaan perlahan:
Qury_time: 2.340166 Lock_time: 0.000000 Rows_examined: 16523
Log di atas menunjukkan bahawa masa pelaksanaan pertanyaan ialah 2.34 saat dan 16523 baris data diimbas, tetapi hanya 1 baris data dikembalikan pada akhirnya. Prestasi pangkalan data boleh dipertingkatkan dengan mengoptimumkan pertanyaan, mengurangkan bilangan baris yang diimbas dan mengoptimumkan logik pertanyaan.
Log binari MySQL (binlog) ialah log yang merekodkan operasi perubahan pangkalan data, yang mengandungi maklumat terperinci tentang operasi seperti penambahan, pemadaman, pengubahsuaian, dan pertanyaan. Dengan menganalisis log binlog, kami boleh memulihkan data sejarah dan menghasilkan semula proses operasi.
Anda boleh melihat nama fail dan lokasi log binlog semasa MySQL melalui arahan berikut:
mysql> SHOW MASTER STATUS;
File | Position |
---|---|
mysql-bin.000 | 107 |
Lajur "Fail" output oleh arahan di atas menunjukkan Nama fail binlog yang sedang digunakan. Seterusnya, kita boleh menggunakan alat mysqlbinlog untuk menganalisis fail:
$ mysqlbinlog /var/lib/mysql/mysql-bin.000001
Arahan di atas akan mengeluarkan semua kandungan dalam binlog fail rekod Operasi. Kita boleh menggunakan pelbagai alat untuk menghuraikan rekod operasi ini, memulihkan proses operasi pangkalan data atau melihat data sejarah.
Walau bagaimanapun, perlu diingatkan bahawa log binlog mungkin mempunyai risiko keselamatan tertentu. Jika log binlog tidak dilindungi dengan betul, maklumat pangkalan data sensitif dan rekod operasi mungkin terdedah. Oleh itu, penjagaan harus diambil untuk melindunginya apabila menggunakan teknologi ini.
MySQL menentukan ralat dengan menyemak status dalaman dan parameter pengendalian, dan merekodkannya dalam log ralat. Log ralat adalah bahagian penting MySQL dan boleh membantu kami menyelesaikan masalah dan menyelesaikan masalah dengan cepat.
Rekod log ralat biasa termasuk maklumat permulaan dan penutupan pangkalan data, maklumat log masuk pengguna pangkalan data, kod ralat dan penerangan ralat, dsb. Apabila kami menghadapi masalah semasa menggunakan MySQL, kami boleh menyemak log ralat untuk menentukan punca masalah dan membetulkannya.
Sebagai contoh, berikut ialah contoh log ralat:
2019-10-23T14:50:41.301325Z 0 [ERROR] Pemalam 'InnoDB' fungsi init mengembalikan ralat.
2019 - 10-23T14:50:41.301325Z 0 [ERROR] Pemalam pendaftaran 'InnoDB' sebagai ENJIN PENYIMPANAN gagal.
2019-10-23T14:50:41.301325Z 0 [ERROR] 2 Gagal memulakan pemalam. - 10-23T14:50:41.301325Z 0 [ERROR] Menggugurkan
Atas ialah kandungan terperinci Kemahiran analisis log data dalam MySQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!