Mysql ukuran log kueri lambat

Nuestra Base de conocimientos sólo está tersedia aktual en ingglés. Estamos dalam proses perdagangan ini halaman y las publicaremos cuando estén disponibles

Artikel ini menjelaskan cara mengaktifkan log kueri lambat MySQL. Anda dapat menggunakan log kueri lambat untuk membantu menentukan kueri database mana yang membutuhkan waktu lama untuk dijalankan

Artikel ini hanya berlaku untuk produk yang tercantum di sidebar Detail Artikel. Anda harus memiliki akses root ke server untuk mengikuti prosedur ini. Jika Anda memiliki VPS Terkelola atau Server Terdedikasi Terkelola (dan tidak memiliki akses root) dan ingin mengaktifkan log kueri yang lambat, silakan buka tiket di Portal Pelanggan di https. //ku. a2hosting. com

Mengaktifkan log kueri lambat

Kueri yang lambat dapat memengaruhi kinerja database dan kinerja server secara keseluruhan. Fitur log kueri yang lambat di MySQL memungkinkan Anda mencatat kueri yang melebihi batas waktu yang telah ditentukan. Ini sangat menyederhanakan tugas menemukan kueri yang tidak efisien atau memakan waktu

Untuk mengaktifkan log kueri yang lambat di MySQL, ikuti langkah-langkah berikut

  1. Masuk ke server Anda menggunakan SSH
  2. Pada baris perintah, ketikkan perintah berikut.
    mysql -u root -p
  3. Ketik kata sandi root MySQL
  4. Untuk mengaktifkan log kueri yang lambat, ketikkan perintah berikut pada prompt mysql>

    SET GLOBAL slow_query_log = 'ON';
    _
  5. Ada opsi tambahan yang dapat Anda atur untuk log kueri yang lambat

    • Secara default, saat log kueri lambat diaktifkan, log kueri apa pun yang memerlukan waktu lebih dari 10 detik untuk dijalankan akan dicatat dalam log. Untuk mengubah interval ini, ketikkan perintah berikut, ganti X dengan waktu dalam detik.
      SET GLOBAL long_query_time = X;
    • Secara default, file log permintaan lambat terletak di /var/lib/mysql/hostname-slow. catatan. Untuk mengubah jalur log atau nama file, ketikkan perintah berikut, ganti jalur dengan jalur ke file, dan nama file dengan nama nama file log

      SET GLOBAL slow_query_log_file = '/path/filename';
  6. Untuk memverifikasi bahwa log kueri yang lambat berfungsi dengan benar, keluar dari program mysql, lalu masuk kembali. (Ini memuat ulang variabel sesi untuk program mysql. ) Ketik perintah berikut, ganti X dengan nilai yang lebih besar dari pengaturan long_query_time

    SELECT SLEEP(X);
    _

    File log kueri lambat harus berisi informasi tentang kueri

  7. Terus pantau file log kueri yang lambat untuk melihat kueri mana yang membutuhkan waktu lama untuk dijalankan
  8. Setelah Anda selesai memecahkan masalah, nonaktifkan log kueri yang lambat. Untuk melakukannya, jalankan kembali program mysql, lalu ketikkan perintah berikut

    SET GLOBAL slow_query_log = 'OFF';

    Anda sebaiknya hanya mengaktifkan log kueri lambat selama diperlukan untuk memecahkan masalah kinerja

Informasi Lebih Lanjut

Untuk informasi selengkapnya tentang log kueri lambat MySQL, silakan kunjungi https. //dev. mysql. com/doc/refman/5. 5/id/log-permintaan-lambat. html

Kembangkan Bisnis Web Anda

Berlanggananlah untuk menerima kiat, strategi, dan berita tercanggih mingguan yang Anda perlukan untuk mengembangkan bisnis web Anda

Gratis. Berhenti berlangganan kapan saja

Apakah menurut Anda artikel ini bermanfaat? . Rasakan perbedaan A2 Hosting hari ini dan dapatkan situs web pra-pengamanan dan pra-pengoptimalan. Lihat paket hosting web kami hari ini

Log kesalahan RDS untuk MySQL dibuat secara default. Anda dapat membuat kueri lambat dan log umum dengan menyetel parameter di grup parameter DB Anda

RDS untuk log kesalahan MySQL

RDS untuk MySQL menulis kesalahan dalam file mysql-error.log. Setiap file log memiliki jam pembuatannya (dalam UTC) ditambahkan ke namanya. File log juga memiliki stempel waktu yang membantu Anda menentukan kapan entri log ditulis

RDS untuk MySQL menulis ke log kesalahan hanya saat memulai, mematikan, dan saat menemukan kesalahan. Instans DB dapat berlangsung berjam-jam atau berhari-hari tanpa entri baru ditulis ke log kesalahan. Jika Anda tidak melihat entri terbaru, itu karena server tidak mengalami kesalahan yang akan menghasilkan entri log

Secara desain, log kesalahan difilter sehingga hanya kejadian tak terduga seperti kesalahan yang ditampilkan. Namun, log kesalahan juga berisi beberapa informasi database tambahan, misalnya kemajuan kueri, yang tidak ditampilkan. Oleh karena itu, bahkan tanpa kesalahan yang sebenarnya, ukuran log kesalahan mungkin bertambah karena aktivitas database yang sedang berlangsung. Dan meskipun Anda mungkin melihat ukuran tertentu dalam byte atau kilobyte untuk log kesalahan di AWS Management Console, mereka mungkin memiliki 0 byte saat Anda mengunduhnya

RDS untuk MySQL menulis mysql-error.log ke disk setiap 5 menit. Itu menambahkan isi log ke mysql-error-running.log

RDS untuk MySQL memutar file mysql-error-running.log setiap jam. Itu mempertahankan log yang dihasilkan selama dua minggu terakhir

Periode retensi log berbeda antara Amazon RDS dan Aurora

RDS untuk kueri lambat MySQL dan log umum

Anda dapat menulis log permintaan lambat RDS untuk MySQL dan log umum ke file atau tabel database. Untuk melakukannya, tetapkan parameter di grup parameter DB Anda. Untuk informasi tentang membuat dan mengubah grup parameter DB, lihat Bekerja dengan grup parameter. Anda harus mengatur parameter ini sebelum Anda dapat melihat log kueri lambat atau log umum di konsol Amazon RDS atau dengan menggunakan Amazon RDS API, Amazon RDS CLI, atau AWS SDK

Anda dapat mengontrol RDS untuk pembuatan log MySQL dengan menggunakan parameter dalam daftar ini

  • slow_query_log. Untuk membuat log kueri lambat, setel ke 1. Standarnya adalah 0

  • general_log. Untuk membuat log umum, setel ke 1. Standarnya adalah 0

  • long_query_time. Untuk mencegah kueri yang berjalan cepat dicatat dalam log kueri lambat, tentukan nilai untuk waktu proses kueri terpendek yang akan dicatat, dalam hitungan detik. Standarnya adalah 10 detik; . Jika log_output = FILE, Anda dapat menentukan nilai floating point yang masuk ke resolusi mikrodetik. Jika log_output = TABLE, Anda harus menentukan nilai integer dengan resolusi kedua. Hanya kueri yang waktu prosesnya melebihi nilai long_query_time yang dicatat. Misalnya, menyetel long_query_time_ ke 0. 1 mencegah kueri apa pun yang berjalan kurang dari 100 milidetik untuk dicatat

  • log_queries_not_using_indexes. Untuk mencatat semua kueri yang tidak menggunakan indeks ke log kueri lambat, setel ke 1. Kueri yang tidak menggunakan indeks dicatat meskipun waktu prosesnya kurang dari nilai parameter long_query_time. Standarnya adalah 0

  • mysql-error.log_1. Anda dapat menentukan salah satu opsi berikut untuk parameter mysql-error.log2

    • TABEL (default) – Tulis kueri umum ke tabel mysql-error.log3, dan kueri lambat ke tabel mysql-error.log4

    • FILE – Tulis log kueri umum dan lambat ke sistem file

    • NONE – Nonaktifkan logging

Untuk informasi selengkapnya tentang kueri lambat dan log umum, buka topik berikut dalam dokumentasi MySQL

Log audit MySQL

Untuk mengakses log audit, instans DB harus menggunakan grup opsi kustom dengan opsi mysql-error.log5. Untuk informasi selengkapnya, lihat dukungan Plugin Audit MariaDB

Rotasi log dan retensi untuk RDS untuk MySQL

Saat logging diaktifkan, Amazon RDS merotasi log tabel atau menghapus file log secara berkala. Tindakan ini merupakan tindakan pencegahan untuk mengurangi kemungkinan file log yang besar memblokir penggunaan database atau memengaruhi kinerja. RDS untuk MySQL menangani rotasi dan penghapusan sebagai berikut

  • Log kueri lambat MySQL, log kesalahan, dan ukuran file log umum dibatasi tidak lebih dari 2 persen dari ruang penyimpanan yang dialokasikan untuk instans DB. Untuk mempertahankan ambang ini, log diputar secara otomatis setiap jam. MySQL menghapus file log yang berumur lebih dari dua minggu. Jika ukuran file log gabungan melebihi ambang batas setelah menghapus file log lama, maka file log terlama akan dihapus hingga ukuran file log tidak lagi melebihi ambang batas

  • Saat mysql-error.log_6 logging diaktifkan, file log diperiksa setiap jam dan file log yang berumur lebih dari dua minggu dihapus. Dalam beberapa kasus, ukuran file log gabungan yang tersisa setelah penghapusan mungkin melebihi ambang 2 persen dari ruang yang dialokasikan instans DB. Dalam kasus ini, file log terlama dihapus hingga ukuran file log tidak lagi melebihi ambang batas

  • Saat mysql-error.log_7 logging diaktifkan, dalam beberapa kasus, tabel log diputar setiap 24 jam. Rotasi ini terjadi jika ruang yang digunakan oleh tabel log lebih dari 20 persen ruang penyimpanan yang dialokasikan. Itu juga terjadi jika ukuran semua log digabungkan lebih besar dari 10 GB. Jika jumlah ruang yang digunakan untuk instans DB lebih besar dari 90 persen ruang penyimpanan yang dialokasikan instans DB, ambang untuk rotasi log akan dikurangi. Tabel log kemudian diputar jika ruang yang digunakan oleh tabel log lebih dari 10 persen dari ruang penyimpanan yang dialokasikan. Mereka juga diputar jika ukuran semua log digabungkan lebih besar dari 5 GB. Anda dapat berlangganan acara mysql-error.log_8 untuk diberi tahu saat tabel log diputar untuk mengosongkan ruang. Untuk informasi selengkapnya, lihat Bekerja dengan pemberitahuan kejadian Amazon RDS

    Saat tabel log diputar, tabel log saat ini pertama kali disalin ke tabel log cadangan. Kemudian entri dalam tabel log saat ini akan dihapus. Jika tabel log cadangan sudah ada, maka akan dihapus sebelum tabel log saat ini disalin ke cadangan. Anda dapat menanyakan tabel log cadangan jika diperlukan. Tabel log cadangan untuk tabel mysql-error.log_3 diberi nama mysql-error-running.log0. Tabel log cadangan untuk tabel mysql-error.log_4 diberi nama mysql-error-running.log2

    Anda dapat memutar tabel mysql-error.log_3 dengan memanggil prosedur mysql-error-running.log4. Anda dapat memutar tabel mysql-error.log_4 dengan memanggil prosedur mysql-error-running.log6

    Log tabel diputar selama pemutakhiran versi database

Untuk bekerja dengan log dari konsol Amazon RDS, Amazon RDS API, Amazon RDS CLI, atau AWS SDK, setel parameter mysql-error.log2 ke FILE. Seperti log kesalahan MySQL, file log ini diputar setiap jam. Berkas log yang dihasilkan selama dua minggu sebelumnya dipertahankan. Perhatikan bahwa periode retensi berbeda antara Amazon RDS dan Aurora

Batas ukuran pada redo log

Untuk RDS untuk MySQL versi 8. 0. 30 dan lebih tinggi, parameter mysql-error-running.log9 digunakan sebagai pengganti parameter mysql-error-running.log8. Batas ukuran tidak berlaku untuk parameter mysql-error-running.log9. Untuk informasi lebih lanjut, lihat

Bagaimana cara mengoptimalkan log kueri yang lambat di MySQL?

Untuk mengaktifkan log kueri yang lambat, ketikkan perintah berikut di prompt mysql>. Salin SET GLOBAL slow_query_log = 'ON'; Ada opsi tambahan yang dapat Anda atur untuk log kueri lambat. Secara default, saat log kueri lambat diaktifkan, log kueri apa pun yang memerlukan waktu lebih dari 10 detik untuk dijalankan akan dicatat dalam log.

Apakah log kueri yang lambat memengaruhi kinerja?

Slow Query harus dijalankan sesuai kebutuhan, dan aktif kembali bukan proaktif. Saya benar-benar melihat kinerja yang lebih buruk disebabkan oleh kueri yang lambat diaktifkan, terutama untuk kueri yang sangat besar (namun belum tentu lambat). Ini adalah alat yang bagus tetapi hanya boleh digunakan saat dibutuhkan, dan itulah mengapa ini dinonaktifkan secara default

Apa itu log kueri lambat MySQL?

Log kueri yang lambat terdiri dari pernyataan SQL yang memerlukan waktu lebih dari long_query_time detik untuk dieksekusi dan memerlukan setidaknya baris min_examined_row_limit untuk diperiksa . Log kueri yang lambat dapat digunakan untuk menemukan kueri yang membutuhkan waktu lama untuk dijalankan dan karena itu merupakan kandidat untuk pengoptimalan.

Bagaimana cara memeriksa log kueri saya yang lambat?

Memeriksa Log Permintaan Lambat Anda . Jika variabel ini tidak disetel, itu akan menggunakan DATA_DIR dari direktori data MySQL Anda. You must ensure that the variable slow_query_log is set to ON, while the slow_query_log_file determines the path where you need to place your slow query logs. If this variable is not set, it will use the DATA_DIR of your MySQL data directory.