Benchmark MySQL Query Menggunakan mysqlslap

MySQL memiliki tool mysqlslap yang dapat membantu DBA dan pengembang untuk menguji beban server database. Anda dapat menguji server database menggunakan parameter --auto-generate-sql atau dengan menguji setiap query yang digunakan oleh aplikasi.

Sebelum memulai pastikan server Anda telah terinstall MySQL minimal versi 5.7 keatas dan Saya sarankan untuk tidak menggunakan server yang sedang live / produksi agar tidak mengganggu aktivitas dari aplikasi Anda.

Kemudian Anda dapat menambah file .my.cnf pada home root atau home user agar setiap eksekusi mysqlslap tidak perlu menggunakan parameter --user dan --password

[client]
user=youruser
password=yourstrongpass

Install Sample Database

Download employees sample database.

wget https://launchpad.net/test-db/employees-db-1/1.0.6/+download/employees_db-full-1.0.6.tar.bz2

Selanjutnya extract file.

tar -xaf employees_db-full-1.0.6.tar.bz2

Import sample database.

mysql -t < employees_db/employees.sql

Using mysqlslap

Benchmarking with Auto-generated SQL

Untuk percobaan pertama akan menguji koneksi tunggal dengan SQL yang digenerate otomatis.

# mysqlslap --auto-generate-sql
Benchmark
        Average number of seconds to run all queries: 0.015 seconds
        Minimum number of seconds to run all queries: 0.015 seconds
        Maximum number of seconds to run all queries: 0.015 seconds
        Number of clients running queries: 1
        Average number of queries per client: 0

Dari output tersebut, Anda akan mengetahui jumlah detik rata-rata, minimum, dan maksimum yang dibutuhkan untuk menjalankan query.

Sekarang coba dengan 25 koneksi secara bersamaan dan jalankan query yang digenerate otomatis selama 10 kali.

mysqlslap -c 25 -i 10 --auto-generate-sql

Benchmarking with Custom Queries

Jika ingin menjalankan custom query gunakan parameter --create-schema untuk menentukan database, lalu --query untuk menentukan query yang akan dijalankan.

mysqlslap -c 25 -i 10 --create-schema=employees --query="SELECT * FROM dept_emp"

Anda dapat menambahkan beberapa query sekaligus ke file tertentu untuk menjalankan beberapa query sekaligus.

mysqlslap -c 25 -i 10 --create-schema=employees --query="/home/user/select_query.sql"