select count(*) - можно обьединить в один запрос?

Tigr

Новичок
Вот вам некоторые данные для дальнейшего обсуждения очень серьезной проблемы:

время в секундах выполнения запроса
select field, count(* или 1) from ads GROUP BY field;

база 5 000 000 записей WINXP
COUNT(*) - 2.673000
COUNT(1) - 2.671000

база 1 000 000 записей Free BSD

COUNT(*) - 1.150060
COUNT(1) - 1.120690

пардон COUNT(*) не 1,45, а 1,15
 

chira

Новичок
от куда секунды и сколько раз выполнялся запрос?
версия MySQL?
а поменять местами
COUNT(1)
COUNT(*)
ну и за одно проверь COUNT('')
 

Three Daws

Guest
2 Tigr: проблема, а точнее тюнинг, действительно интересен.

но... тут сложно не быть ироничным при обсуждении. Например, наблюдая помощь помощника своему санитару .

2 chira: а почему Вы не попросили сделать замеры для COUNT(2)?

Основной доминантой в мотивации вашего участия в обсуждении является чувство стадности, солидарности со "своей стаей"?

--
"слушай, Гендальф, а они часом не родственники?" (с) Гоблин
 

Falc

Новичок
Three Daws
>>1. В конце перечисления строк вида SELECT стоит многоточие.

>>Как Вы это воспринимаете, трактуете? Просто не заметили? Упустили из виду?

Да не заметил.

По поводу "Ты", "Вы" на этом форуме я со всеми на ты, если Вам это не нравится с Вами я могу на Вы.


Tigr
Сомнительны твои эксперименты. У меня выдает одинаковый резултат. Чисто теоритически резултат не должен отличатся на практике я тоже не заметил разницы. Возможно разница возникла из- незакешированных данных в первом случае.
 

chira

Новичок
Three Daws
пеной не захлебнёшся?

вопрос для размышления:
сколько байт памяти займет пустая строка и сколько байт займет число 1,2,128,65536?

-~{}~ 03.06.04 16:12:

вообще-то всё мной вышесказанное к тому, что использование COUNT(1) в место COUNT(*) во всех случаях, не может быть аксиомой.
В мануале по MySQL упоминается COUNT(*) и описано как он работает, а про COUNT(1) не сказано.
Я раньше в Oracle 7 использовал COUNT('x') теперь в версиях 8i & 9i нет надобности в такой форме.
 

Three Daws

Guest
2 chira
пустая строка как что? как varchar(32), как char(255), как char(1)? число '1' как int(11), как tinyint(1)?

как будет интерпретировано точное указание константы в SELECTе? Будет ли автоматически подбираться наиболее минимальный для представления константы тип данных или все числа автоматически преобразуются в int(11), а строки в CHAR(сколько) или VARCHAR(сколько)?

все ли Ваши сконцентрированные сообщения нужно воспринимать как коан-откровение и начинать над ними работать? Или иногда Вы сначала пишите, потом подводите под это материальную базу?

-~{}~ 03.06.04 17:26:

а кто именно говорит об аксиомах?

вот тут - http://phpclub.ru/talk/showthread.php?postid=340453#post340453 - есть запись о том, что есть торможение при наличии полей типа BLOB

я пока наблюдаю только двух сказителей истины в последней инстанции - оба в белых халатах. "делай как мы и вопросов не возникнет"?

--
очень интересно спорить с адептами различных культов. Обычно, они всячески цепляются за тот факт, что их учение базируется на Одной Великой Книге, в которой уже собрана вся мудрость веков. Если удается их вытащить за рамки этого информационного поля - становится интересно :)
 

Falc

Новичок
chira
Не надо спорить, если человек не хочет думать о том что кому-то еще придется разбирать его код, то врядли его переубедишь.


Для остальных кто будет читать данный тред скажу, что в MySQL 4.0, и скорее всего 3.23 (такого древнего софта у меня нету что бы проверить ) разницы в быстродействии COUNT(*) и COUNT(1) нет.
 

chira

Новичок
да я и не спорю ;)
спорить-то не о чем ...

Three Daws
ты заметь, сколько у тебя сразу вопросов появилось, раньше у тебя их не было когда говорил о ресусоёмкости
 

Three Daws

Guest
Falc:
"учение Маркса всесильно, потому что оно верно"?

но смещение акцента обсуждения с идиотского совета "точнее ... WHERE cat_id IN (...) ...", я оценил, это да.

chira:
т.е. у меня сразу возникли вопросы? ок.
те, которым все понятно, не могли бы прокомментировать свой коан о пустой строке, подробно расписав стратегию MySQL приведения типов констант в запросе?


медперсоналу оптом: давно так не развлекался, искреннее спасибо.

---
"Никогда не стоит недооценивать степень предсказуемости тупизны" (c) Гоблин
 

Tigr

Новичок
как замерял время:

Замерял время выполнения запроса по 10 раз для каждого и брал среднее арифметическое.

MySQL 3.23
 
Сверху