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"