MariaDB BENCHMARK() 函数使用指南
在 MariaDB 中,BENCHMARK() 是一个内置函数,它将给定的表达式重复执行指定的次数。
MariaDB BENCHMARK() 函数主要在 mysql 命令行工具使用,以报告查询执行时间。
MariaDB BENCHMARK() 语法
这里是 MariaDB BENCHMARK() 函数的语法:
BENCHMARK(count, expr)
参数
count- 必需的。 指定的次数。
expr- 必需的。 要执行的表达式。
如果您不提供错误数量的参数,MariaDB 将报告一个错误:ERROR 1582 (42000): Incorrect parameter count in the call to native function 'BENCHMARK'。
返回值
MariaDB BENCHMARK() 函数总是返回 0。
如果第一个参数给定一个负的次数或者 NULL,,BENCHMARK() 函数将返回 NULL。
MariaDB BENCHMARK() 示例
示例 1
下面的示例展示了如何使用 BENCHMARK() 函数重复执行 10000000 次 MD5('aaa') 函数。
SELECT BENCHMARK(10000000, MD5('aaa'));
输出:
+---------------------------------+
| BENCHMARK(10000000, MD5('aaa')) |
+---------------------------------+
| 0 |
+---------------------------------+
1 row in set (1.502 sec)该函数返回了 0,但是您可以从 1 row in set (1.502 sec) 获取执行时间。
示例 2
下面的示例展示了如何使用 BENCHMARK() 函数重复执行 10 次 SLEEP(1) 函数。
SELECT BENCHMARK(10, SLEEP(1));
输出:
+-------------------------+
| BENCHMARK(10, SLEEP(1)) |
+-------------------------+
| 0 |
+-------------------------+
1 row in set (10.111 sec)在本示例中, SLEEP(1) 函数将执行暂行 1 秒。
示例 3 - 负值 or NULL
如果第一个参数给定一个负的次数或者 NULL,BENCHMARK() 函数将返回 NULL。
SELECT
BENCHMARK(-10, SLEEP(1)),
BENCHMARK(NULL, SLEEP(1));
输出:
+--------------------------+---------------------------+
| BENCHMARK(-10, SLEEP(1)) | BENCHMARK(NULL, SLEEP(1)) |
+--------------------------+---------------------------+
| NULL | NULL |
+--------------------------+---------------------------+
1 row in set, 1 warning (0.000 sec)结论
在 MariaDB 中,BENCHMARK() 是一个内置函数,它将给定的表达式重复执行指定的次数。