MySQL 基准测试

发布于 2024-08-16 05:07:28 字数 257 浏览 3 评论 0原文

我正在尝试使用 MySQL 基准测试来测试一些查询。但是,我遇到了错误。

SELECT benchmark (10000, (select title from user));

作为回报我得到这个错误;

ERROR 1242 (21000): Subquery returns more than 1 row

有谁知道如何对查询进行基准测试?

谢谢

I am trying to use MySQL benchmark to test some queries. But, I am running to an error.

SELECT benchmark (10000, (select title from user));

and in return I get this error;

ERROR 1242 (21000): Subquery returns more than 1 row

Does anyone know how to benchmark a query?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

眼泪淡了忧伤 2024-08-23 05:07:28
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'
select title from user

This returns multiple rows, which won't work.

Refer to this link:
http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_benchmark

The expression you pass must return a scalar result.

You need to change the query such that it returns a single row:
ex:

select title from user where user_name = 'some_user'
一念一轮回 2024-08-23 05:07:28

您可以使用 mysqlslap 实用程序来对查询进行基准测试,请参阅:
http://dev.mysql.com/doc/refman/5.1/en /mysqlslap.html

you can use the mysqlslap utility to benchmark queries, see:
http://dev.mysql.com/doc/refman/5.1/en/mysqlslap.html

爱给你人给你 2024-08-23 05:07:28

来自 http://dev.mysql.com/doc /refman/5.0/en/information-functions.html#function_benchmark

只能使用标量表达式。
虽然表达式可以是
子查询,它必须返回一个
列,最多一行。为了
例如,BENCHMARK(10, (SELECT * FROM
如果表 t 有更多内容,则 t)) 将失败
多于一列或多于一行。

尝试

SELECT BENCHMARK(10000, (SELECT title FROM user LIMIT 1));

From http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_benchmark

Only scalar expressions can be used.
Although the expression can be a
subquery, it must return a single
column and at most a single row. For
example, BENCHMARK(10, (SELECT * FROM
t)) will fail if the table t has more
than one column or more than one row.

Try

SELECT BENCHMARK(10000, (SELECT title FROM user LIMIT 1));
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文