我正在尝试使用 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'
您可以使用 mysqlslap 实用程序对查询进行基准测试,请参阅: http ://dev.mysql.com/doc/refman/5.1/en/mysqlslap.html
来自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));