MariaDB
 sql >> Teknologi Basis Data >  >> RDS >> MariaDB

Cara Mengidentifikasi Masalah Kinerja MySQL dengan Query Lambat

Masalah kinerja adalah masalah umum saat mengelola database MySQL. Terkadang masalah ini sebenarnya disebabkan oleh kueri yang lambat. Di blog ini, kami akan menangani kueri lambat dan cara mengidentifikasinya.

Memeriksa Log Kueri Lambat Anda

MySQL memiliki kemampuan untuk memfilter dan mencatat kueri yang lambat. Ada berbagai cara Anda dapat menyelidiki ini, tetapi cara yang paling umum dan efisien adalah dengan menggunakan log kueri lambat.

Anda harus menentukan terlebih dahulu apakah log kueri lambat Anda diaktifkan. Untuk mengatasinya, Anda dapat pergi ke server Anda dan menanyakan variabel berikut:

MariaDB [(none)]> show global variables like 'slow%log%';

+---------------------+-------------------------------+

| Variable_name       | Value           |

+---------------------+-------------------------------+

| slow_query_log      | ON           |

| slow_query_log_file | /var/log/mysql/mysql-slow.log |

+---------------------+-------------------------------+

2 rows in set (0.001 sec)

Anda harus memastikan bahwa variabel slow_query_log disetel ke ON, sedangkan file slow_query_log_menentukan jalur di mana Anda perlu menempatkan log kueri lambat Anda. Jika variabel ini tidak disetel, variabel ini akan menggunakan DATA_DIR dari direktori data MySQL Anda.

Disertai dengan variabel slow_query_log adalah long_query_time dan min_examined_row_limit yang memengaruhi cara kerja pencatatan kueri lambat. Pada dasarnya, log kueri lambat berfungsi sebagai pernyataan SQL yang membutuhkan lebih dari detik_query_time untuk dieksekusi dan juga memerlukan setidaknya baris min_examined_row_limit untuk diperiksa. Ini dapat digunakan untuk menemukan kueri yang membutuhkan waktu lama untuk dieksekusi dan oleh karena itu merupakan kandidat untuk pengoptimalan dan kemudian Anda dapat menggunakan alat eksternal untuk membawa laporan untuk Anda, yang akan dibicarakan nanti.

Secara default, pernyataan administratif (ALTER TABLE, ANALYZE TABLE, CHECK TABLE, CREATE INDEX, DROP INDEX, OPTIMIZE TABLE, dan REPAIR TABLE) tidak termasuk dalam log kueri lambat. Untuk melakukan ini, Anda perlu mengaktifkan variabel log_slow_admin_statements.

Daftar Proses Kueri dan Monitor Status InnoDB

Dalam rutinitas DBA normal, langkah ini adalah cara paling umum untuk menentukan kueri yang berjalan lama atau kueri yang berjalan aktif yang menyebabkan penurunan kinerja. Bahkan mungkin menyebabkan server Anda macet diikuti oleh antrian yang menumpuk yang perlahan meningkat karena kunci yang ditutupi oleh kueri yang sedang berjalan. Anda cukup menjalankan,

SHOW [FULL] PROCESSLIST;

atau

SHOW ENGINE INNODB STATUS \G

Jika Anda menggunakan ClusterControl, Anda dapat menemukannya dengan menggunakan