Ваш результат пахнет неправильно, я только что проверил документацию и провел несколько собственных тестов.На самом деле вы ничего не тестируете.
BENCHMARK () предназначен для тестирования скалярных выражений, а не для тестирования времени выполнения запросов.Запрос на самом деле не выполняется.В моем собственном тестировании запросов длительность не была связана ни со сложностью запроса, а только с количеством выполняемых испытаний.
Взгляните на http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_benchmark
Несколько цитат из документа:
"BENCHMARK () предназначен для измерения производительности скалярных выражений во время выполнения,"
"Можно использовать только скалярные выражения. Хотя выражение может бытьподзапрос, он должен возвращать один столбец и не более одной строки. Например, BENCHMARK (10, (SELECT * FROM t)) завершится ошибкой, если таблица t имеет более одного столбца или более одной строки. "
На самом деле вы ничего не измеряете, за исключением абсолютного большинства времени планировщиков запросов.
Если вы хотите выполнить тесты, возможно, стоит сделать это из кода приложения (и возможно с помощью директивы no cache)в зависимости от того, как напиши тяжело будет твоя среда разработки.).Выполнение этого из кода приложения также будет учитывать время для гидратации данных, а также стоимость отправки данных по проводам и т. Д.