DISTINCT vs GROUP BY

VlastV

Новичок
DISTINCT vs GROUP BY

Здравствуйте.

У меня возник такой вопрос: какой запрос предпочтительней использовать:

SELECT DATE_FORMAT(magazineDate, '%Y') FROM Message61 GROUP BY DATE_FORMAT(magazineDate, '%Y')

или

SELECT DISTINCT YEAR(magazineDate) FROM Message61


И где можно почитать какими средствами в дальнейшем сравнивать запросы на производительность?
 

VlastV

Новичок
Я не знаю как правильно тестировать, кроме как просто забить тестовыми данными:)
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
да хотя-бы так
$step = 600;
for ($time = 0; $time<=1000000000000000; $time+=$step){
INSERT..................... date('Y-m-d', $time);
}
 

alpine

Новичок
VlastV
Два приведенных запроса эквивалентны за исключением функции используемой для вычисления года.
Поэтому думаю, что зная какая функция быстрее можно сказать какой из запросов быстрее выполнится.
Код:
mysql> SELECT VERSION();
+---------------------+
| VERSION()           |
+---------------------+
| 5.0.27-community-nt |
+---------------------+
1 row in set (0.00 sec)
Код:
mysql> SELECT BENCHMARK(1000000, YEAR('2007-08-23 17:20:23'));
+-------------------------------------------------+
| BENCHMARK(1000000, YEAR('2007-08-23 17:20:23')) |
+-------------------------------------------------+
|                                               0 |
+-------------------------------------------------+
1 row in set (0.38 sec)
Код:
mysql> SELECT BENCHMARK(1000000, DATE_FORMAT('2007-08-23 17:20:23', '%Y'));
+--------------------------------------------------------------+
| BENCHMARK(1000000, DATE_FORMAT('2007-08-23 17:20:23', '%Y')) |
+--------------------------------------------------------------+
|                                                            0 |
+--------------------------------------------------------------+
1 row in set (0.55 sec)
Как видно функция YEAR() быстрее соответственно запрос использующий ее тоже быстрее.
 
Сверху