Показать сообщение отдельно
Старый 25.07.2010, 22:44   #42
TIMzs
Гость
 
Сообщений: n/a
Лампочка

По поводу тестов... заинтересовали... )

Решил выяснить, какой способ быстрее подсчитывает данные.

Тест проводился в php цикле. n - количество раз. Засекалось время в начале работы скрипта и в конце, после чего высчитывалось время выполнения запроса.

Первый тест, выполнялся 200 раз.
Код:
SELECT SQL_NO_CACHE count(`guid`) FROM `creature`
Код работал 0.0197730064392с.

SELECT SQL_NO_CACHE `guid` FROM `creature`
Код работал 16.0518889427с.

SELECT SQL_NO_CACHE count(1) FROM `creature`
Код работал 0.0185179710388с.

SELECT SQL_NO_CACHE count(*) FROM `creature`
Код работал 0.0183970928192с.
Селект без count() отпадает сразу, результат на глаза. Остальные же запросы, было сложно оценить, в плане производительности. Для этого проводился второй тест.


Второй тест, выполнялся 200000 раз.
Код:
SELECT SQL_NO_CACHE count(`guid`) FROM `creature`
Код работал 19.9426920414с.

SELECT SQL_NO_CACHE count(1) FROM `creature`
Код работал 19.7694129944с.

SELECT SQL_NO_CACHE count(*) FROM `creature`
Код работал 19.4894280434с.
count(*) - бесспорный победитель.
  Ответить с цитированием
2 пользователя(ей) сказали cпасибо:
Праведник (25.07.2010)