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

MariaDB BENCHMARK() Dijelaskan

Di MariaDB, BENCHMARK() adalah fungsi bawaan yang mengeksekusi ekspresi beberapa kali.

Ini dapat digunakan untuk menghitung seberapa cepat MariaDB memproses ekspresi.

Hasilnya selalu 0 . Fungsi ini dimaksudkan untuk digunakan dalam alat baris perintah mysql, yang melaporkan waktu eksekusi kueri.

Sintaks

Sintaksnya seperti ini:

BENCHMARK(count,expr)

Dimana count adalah berapa kali Anda ingin expr untuk berlari.

Contoh 1

Berikut ini contoh untuk didemonstrasikan:

SELECT BENCHMARK(2, SLEEP(2));

Hasil:

+------------------------+
| BENCHMARK(2, SLEEP(2)) |
+------------------------+
|                      0 |
+------------------------+
1 row in set (4.015 sec)

Seperti yang diharapkan, 0 dikembalikan. Namun, yang kami minati adalah waktu eksekusi kueri.

Di sini saya menggunakan SLEEP() berfungsi untuk tidur selama 2 detik. Menggunakan fungsi ini dengan sendirinya biasanya akan menyebabkan pernyataan membutuhkan waktu sekitar 2 detik untuk dieksekusi.

Namun, dalam hal ini saya melewati 2 sebagai argumen pertama untuk BENCHMARK() . Itu menyebabkan SLEEP() fungsi untuk dieksekusi dua kali, menyebabkan BENCHMARK() fungsi yang membutuhkan waktu sekitar 4 detik untuk dieksekusi (tepatnya 4.015 detik).

Inilah yang terjadi jika kita meningkatkan argumen pertama menjadi 3 :

SELECT BENCHMARK(3, SLEEP(2));

Hasil:

+------------------------+
| BENCHMARK(3, SLEEP(2)) |
+------------------------+
|                      0 |
+------------------------+
1 row in set (6.012 sec)

Kali ini SLEEP() fungsi dieksekusi tiga kali, jadi BENCHMARK() hanya membutuhkan waktu lebih dari 6 detik untuk dieksekusi.

Contoh 2

Berikut adalah contoh yang menggunakan ENCODE() berfungsi untuk mengkodekan string (argumen pertama) dengan kata sandi (argumen kedua):

SELECT BENCHMARK(100000, ENCODE('Homer', 'Symptom'));

Hasil:

+-----------------------------------------------+
| BENCHMARK(100000, ENCODE('Homer', 'Symptom')) |
+-----------------------------------------------+
|                                             0 |
+-----------------------------------------------+
1 row in set (0.016 sec)

Kita dapat melihat bahwa operasi tersebut membutuhkan waktu 0,016 detik untuk diselesaikan.

Mari kita tingkatkan argumen pertama dari 100.000 menjadi 1.000.000 dan lihat bagaimana hal itu memengaruhi waktu eksekusi.

SELECT BENCHMARK(1000000, ENCODE('Homer', 'Symptom'));

Hasil:

+------------------------------------------------+
| BENCHMARK(1000000, ENCODE('Homer', 'Symptom')) |
+------------------------------------------------+
|                                              0 |
+------------------------------------------------+
1 row in set (0.118 sec)

Kali ini butuh waktu lebih lama untuk berjalan.

Argumen Null

Jika argumen pertama adalah null , lalu null dikembalikan:

SELECT BENCHMARK(null, ENCODE('Homer', 'Symptom'));

Hasil:

+---------------------------------------------+
| BENCHMARK(null, ENCODE('Homer', 'Symptom')) |
+---------------------------------------------+
|                                        NULL |
+---------------------------------------------+
1 row in set (0.007 sec)

Tetapi jika hanya argumen kedua null , lalu 0 dikembalikan:

SELECT BENCHMARK(100000, null);

Hasil:

+-------------------------+
| BENCHMARK(100000, null) |
+-------------------------+
|                       0 |
+-------------------------+
1 row in set (0.002 sec)

Jumlah Argumen Tidak Valid

Memanggil BENCHMARK() tanpa argumen, atau dengan jumlah argumen yang salah, menghasilkan kesalahan:

SELECT BENCHMARK();

Hasil:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'BENCHMARK'

Dan:

SELECT BENCHMARK(1, 2, 3);

Hasil:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'BENCHMARK'

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menyediakan Mesin Rahasia Database MySQL/MariaDB Vault dengan Terraform

  2. Bagaimana STRCMP() Bekerja di MariaDB

  3. Bagaimana DATE_FORMAT() Bekerja di MariaDB

  4. Menjalankan Cluster MariaDB Galera Tanpa Alat Orkestrasi Kontainer:Bagian Satu

  5. Ubah Hasil Kueri menjadi Daftar Dipisahkan Koma di MariaDB