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()
是一个内置函数,它将给定的表达式重复执行指定的次数。