Uji kemampuan Anda di semua layanan Hosting kami dan dapatkan diskon 15%!

Gunakan kode saat checkout:

Skills
23.06.2025
No categories

Cara Mengaktifkan Log Query Lambat di MySQL atau MariaDB

Seiring dengan pertumbuhan database dan menjadi komponen inti dari aplikasi web, penyetelan kinerja menjadi sangat penting. Di MySQL® dan MariaDB, salah satu cara paling efektif untuk mendiagnosis kemacetan kinerja adalah dengan mengaktifkan log kueri lambat. Log ini membantu mengidentifikasi kueri yang membutuhkan waktu terlalu lama untuk dieksekusi, sehingga Anda dapat mengoptimalkannya dan meningkatkan kinerja database Anda secara keseluruhan.

Dalam panduan ini, kami akan menjelaskan apa itu log kueri lambat, mengapa log ini penting, dan bagaimana cara mengaktifkan serta mengonfigurasinya di MySQL dan MariaDB.

Apa yang dimaksud dengan Log Kueri Lambat?

Log kueri lambat adalah file log yang mencatat kueri SQL yang memerlukan waktu lebih lama dari jumlah waktu tertentu (ambang batas) untuk dieksekusi. Secara default, ambang batas ini diatur ke 10 detik, tetapi dapat disesuaikan. Kueri yang melebihi batas waktu ini dicatat, bersama dengan informasi seperti berapa lama waktu yang dibutuhkan kueri dan tanggal serta waktu eksekusi. Ini adalah alat yang penting bagi pengembang dan administrator database untuk mengidentifikasi dan mengoptimalkan kueri yang berjalan lambat, sehingga membantu meningkatkan kinerja database.

Mengapa Mengaktifkan Log Kueri Lambat?

Mengaktifkan log kueri lambat akan membantu:

  1. Mengidentifikasi Hambatan Kinerja: Kueri lambat dapat berdampak signifikan terhadap performa aplikasi Anda. Log membantu Anda mengidentifikasi kueri yang bermasalah ini.
  2. Pengoptimalan: Dengan memeriksa kueri yang lambat, Anda dapat mengidentifikasi area di mana indeks, restrukturisasi kueri, atau cache dapat meningkatkan kinerja.
  3. Memantau Kinerja Kueri: Untuk penyetelan kinerja yang sedang berlangsung, log kueri lambat memberikan wawasan tentang bagaimana waktu eksekusi kueri berubah seiring waktu.

Cara Mengaktifkan Log Kueri Lambat di MySQL atau MariaDB

Mengaktifkan log kueri lambat melibatkan modifikasi file konfigurasi dan menyesuaikan beberapa pengaturan secara langsung pada instans MySQL/MariaDB. Berikut ini cara melakukannya langkah demi langkah.

Langkah 1: Mengakses File Konfigurasi MySQL/MariaDB

File konfigurasi MySQL dan MariaDB biasanya terletak di:

  • Untuk MySQL: /etc/my.cnf atau /etc/mysql/my.cnf
  • Untuk MariaDB: /etc/my.cnf.d/server.cnf atau /etc/mysql/mariadb.cnf

Gunakan editor teks pilihan Anda untuk membuka berkas konfigurasi. Sebagai contoh, dengan nano, Anda dapat menjalankan perintah berikut:

sudo nano /etc/my.cnf

Langkah 2: Memodifikasi berkas konfigurasi

Pada berkas konfigurasi, cari bagian [mysqld] . Jika tidak ada, Anda dapat membuatnya. Tambahkan atau modifikasi baris berikut ini untuk mengaktifkan log kueri lambat:

[mysqld]
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow-query.log
long_query_time = 2

  • slow_query_log = 1: Mengaktifkan log kueri lambat.
  • slow_query_log_file: Menentukan lokasi di mana file log kueri lambat akan disimpan. Anda dapat menetapkan jalur dan nama file khusus, tetapi pastikan direktori tersebut memiliki izin tulis yang tepat untuk MySQL/MariaDB.
  • long_query_time = 2: Menetapkan ambang batas untuk kueri yang memenuhi syarat sebagai kueri “lambat”. Dalam hal ini, setiap kueri yang memakan waktu lebih dari 2 detik akan dicatat. Anda dapat menyesuaikan nilai ini tergantung pada kebutuhan kinerja Anda.

Langkah 3: Mulai ulang Layanan MySQL/MariaDB

Setelah menyimpan perubahan pada berkas konfigurasi, mulai ulang layanan MySQL atau MariaDB agar perubahan diterapkan.

  • Untuk sistem yang menggunakan systemd:
sudo systemctl restart mysqld # Untuk MySQL
sudo systemctl restart mariadb # Untuk MariaDB
  • Untuk sistem yang menggunakan init.d:
sudo service mysqld restart # Untuk MySQL
sudo service mariadb restart # Untuk MariaDB

Langkah 4: Memverifikasi Log Kueri Lambat Diaktifkan

Untuk memverifikasi bahwa log kueri lambat diaktifkan, masuk ke klien MySQL/MariaDB dengan menjalankan:

mysql -u root -p

Setelah masuk, jalankan perintah berikut:

TUNJUKKAN VARIABEL SEPERTI 'slow_query_log';

Anda akan melihat sesuatu seperti ini:

----------------- -------
| Nama_variabel | Nilai |
----------------- -------
| slow_query_log | ON |
----------------- -------

Ini mengonfirmasi bahwa log kueri lambat diaktifkan.

Langkah 5: Menganalisis Log Kueri Lambat

Log kueri lambat mencatat kueri dalam file yang ditentukan dalam konfigurasi. Untuk melihat konten log kueri lambat, Anda dapat menggunakan penampil teks seperti less, cat, atau tail:

sudo less /var/log/mysql/slow-query.log

Anda akan melihat entri yang serupa dengan yang berikut ini:

# Time: 2024-10-11T12:45:23.489187Z
# User@Host: root[root] @ localhost []
# Query_time: 4.561529 Lock_time: 0.000115 Rows_sent: 1 Rows_examined: 50000
SET timestamp=1697030723;
SELECT * FROM large_table WHERE column = 'value';

Log menyediakan rincian seperti waktu eksekusi kueri, waktu penguncian, jumlah baris yang dikirim dan diperiksa, dan kueri SQL yang sebenarnya.

Konfigurasi Opsional untuk Log Kueri Lambat

Ada opsi konfigurasi tambahan yang dapat Anda atur untuk menyesuaikan log kueri lambat untuk kebutuhan spesifik Anda.

1. Log Kueri Tanpa Indeks

Anda juga dapat mengaktifkan pencatatan untuk kueri yang tidak menggunakan indeks, yang sering kali menjadi sumber masalah performa. Tambahkan baris berikut ini ke konfigurasi MySQL/MariaDB Anda:

log_queries_not_using_indexes = 1

Ini akan mencatat setiap kueri yang tidak menggunakan indeks, membantu Anda mengidentifikasi dan mengoptimalkan kueri yang berkinerja buruk.

2. Batasi Ukuran File Log

Untuk mencegah log kueri lambat menjadi terlalu besar, Anda dapat merotasi log atau membatasi ukurannya. Pada sistem Linux, Anda dapat menggunakan logrotate untuk mengelola ukuran dan rotasi file log MySQL/MariaDB.

Berikut ini contoh dasar untuk /etc/logrotate.d/mysql:

/var/log/mysql/slow-query.log {
daily
rotate 7
missingok
notifempty
compress
delaycompress
postrotate
/usr/bin/systemctl reload mysql >/dev/null 2>&1 || true
endscript
}

Konfigurasi ini merotasi file log setiap hari dan menyimpan tujuh log terakhir, sehingga memastikan log kueri lambat tidak menghabiskan terlalu banyak ruang disk.

Langkah 6: Menonaktifkan Log Kueri Lambat

Setelah Anda mengidentifikasi dan mengoptimalkan kueri lambat, Anda mungkin ingin menonaktifkan log kueri lambat untuk menghemat sumber daya. Untuk melakukan ini, edit kembali file konfigurasi dan atur slow_query_log ke 0:

[mysqld]
slow_query_log = 0

Mulai ulang layanan MySQL atau MariaDB untuk menerapkan perubahan.

Kesimpulan

Log kueri lambat adalah alat yang sangat berharga untuk menyetel performa basis data di MySQL dan MariaDB. Dengan mencatat kueri yang membutuhkan waktu terlalu lama untuk dieksekusi, Anda dapat mengidentifikasi kemacetan dan mengoptimalkan kinerja kueri. Baik Anda mengelola database kecil atau aplikasi perusahaan berskala besar, mengaktifkan log kueri lambat adalah cara proaktif untuk memastikan database Anda tetap cepat dan efisien.

Dengan mengikuti langkah-langkah dalam panduan ini, Anda seharusnya dapat mengaktifkan, mengonfigurasi, dan menganalisis log kueri lambat untuk mengoptimalkan performa database MySQL atau MariaDB Anda secara efektif.

Uji kemampuan Anda di semua layanan Hosting kami dan dapatkan diskon 15%!

Gunakan kode saat checkout:

Skills

Похожие записи не найдены.