我正在尝试使用MySQL基准测试一些查询。但是,我遇到了一个错误。
SELECT benchmark (10000, (select title from user));
但是我却得到了这个错误:
ERROR 1242 (21000): Subquery returns more than 1 row
有人知道如何对查询进行基准测试吗?
谢谢
我正在尝试使用MySQL基准测试一些查询。但是,我遇到了一个错误。
SELECT benchmark (10000, (select title from user));
但是我却得到了这个错误:
ERROR 1242 (21000): Subquery returns more than 1 row
有人知道如何对查询进行基准测试吗?
谢谢
select title from user
这将返回多行,这不起作用。
请参考此链接: http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_benchmark
您传递的表达式必须返回一个标量结果。
您需要更改查询以返回单行,例如:
select title from user where user_name = 'some_user'
来自http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_benchmark
只有标量表达式可以使用。 虽然表达式可以是子查询,但它必须返回单个列并且最多一行。例如,如果表t具有多个列或多个行,则BENCHMARK(10,(SELECT * FROM t))将失败。
尝试一下
SELECT BENCHMARK(10000, (SELECT title FROM user LIMIT 1));