MySQL Benchmark

Я пытаюсь использовать сравнительный тест MySQL для тестирования некоторых запросов. Но, я работаю к ошибке.

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

и в ответ я получаю эту ошибку;

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

Кто-либо знает, как сравнить запроса?

Спасибо

11
задан OMG Ponies 13 July 2011 в 03:03
поделиться

3 ответа

select title from user

Это возвращает несколько строк, что не будет работать.

См. эту ссылку: http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_benchmark

Передаваемое выражение должно возвращать скалярный результат.

Необходимо изменить запрос так, чтобы он возвращал одну строку: ex:

select title from user where user_name = 'some_user'
10
ответ дан 3 December 2019 в 06:21
поделиться

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

Можно использовать только скалярные выражения. Хотя выражение может быть подзапрос, он должен вернуть один столбец и максимум один ряд. Для пример, BENCHMARK(10, (ВЫБЕРИТЬ * ОТКЛЮЧИТЬ) t)) провалится, если в таблице t будет больше чем один столбец или несколько строк.

Попробуйте

SELECT BENCHMARK(10000, (SELECT title FROM user LIMIT 1));
-1
ответ дан 3 December 2019 в 06:21
поделиться

вы можете использовать утилиту mysqlslap для сравнения запросов, смотрите: http://dev.mysql.com/doc/refman/5.1/en/mysqlslap.html

10
ответ дан 3 December 2019 в 06:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: