MySQL Benchmark
Я пытаюсь использовать тест MySQL для тестирования некоторых запросов. Но я бегу к ошибке.
SELECT benchmark (10000, (select title from user));
и в ответ я получаю эту ошибку;
ERROR 1242 (21000): Subquery returns more than 1 row
Кто-нибудь знает, как тестировать запрос?
Спасибо
Ответы
Ответ 1
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'
Ответ 2
вы можете использовать утилиту mysqlslap для тестирования запросов, см.
http://dev.mysql.com/doc/refman/5.1/en/mysqlslap.html
Ответ 3
От http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_benchmark
Можно использовать только скалярные выражения. Хотя выражение может быть подзапрос, он должен вернуть один колонке и не более одной строки. Для пример, BENCHMARK (10, (SELECT * FROM t)), если таблица t имеет больше чем один столбец или более одной строки.
Try
SELECT BENCHMARK(10000, (SELECT title FROM user LIMIT 1));