Что хуже "Using Filesort" или "Using Temporary"?

Bermuda

Новичок
admin
Сделай отдельную маленькую табличку где будут хранится count
Так и делаю, потому как в запросах такого вида избавится от временной таблицы не удалось.
 

Wicked

Новичок
fisher, admin:
интересно было бы узнать, как часто, и при каких стечениях обстоятельств, вы идете на такого рода денормализацию.
 

fisher

накатила суть
Wicked: почти всегда. как только начинаешь делать что-то по-настоящему нагруженное в сознании волей-неволей происходит переворот. не бояться денормализации. проектировать, представляя КАК база будет делать все операции. иначе приложения сосут по полной.
 

Wicked

Новичок
разве это не называется термином "преждевременная оптимизация"? Я бы выстроил градацию таким образом:
- оптимизировать всё и вся, жертвуя переносимостью, нормализацией, и прочим, сопутствующим мифическому понятию "идеальность".
- оптимизировать в меру, только там, где без этого действительно нельзя, отчетливо понимая, что это все грязные трюки. Причем, по большей части делать это уже на стадии, когда нагрузка становится более-менее осязаемая и становятся видны реальные ботлнеки.
- быть рыцарем на белом коне, который вообще не марается в подобных вещах и размышляет: "пусть лучше мой код не выдержит большую нагрузку, но он будет примером для подрожания таким же небольшим проектам".

По мне так ближе второй вариант. Для меня денормализация - в некотором роде - зло, с которым приходится мириться. Возможно, мне просто не хватает опыта в экстремально нагруженных проектах :)
 

fisher

накатила суть
>>разве это не называется термином "преждевременная
>>оптимизация"?
ну, у кого как. в обычном мире нагрузка может случиться, а может и нет. может будет тормозить, а может и так сойдет. а есть миры необычные :)
 

confguru

ExAdmin
Команда форума
Wicked

Вот конкретный пример
http://photofile.ru/genres/
подсчет кол-ва альбовов + показ
где появились новые альбомы

на сайте более 200k посетителей и 4 000 000 хитов
ежедневно.

По твоему для каждого хита надо count() делать :)

p.s. если в день меньше 10k то можно о скорости сильно
не задумываться, но делательно чтоб скрипт выполнялся менее 100мс
посетители будут благодарны :)
 

Wicked

Новичок
По твоему для каждого хита надо count() делать :)
Разумеется, нет. Но заранее я бы не стал там подобного рода оптимизацию делать, ибо отношу себя к описанному мной второму варианту. Фишер - имхо яркий пример первого.

С тобой пока не ясно :) На какой стадии проекта ты решил, что там нужно кэшировать эту инфу?
 

confguru

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

fisher

накатила суть
>>Фишер - имхо яркий пример первого
это гон. чаще я просто наперёд знаю что и как будет нагружено. я за второй подход. просто есть ньюансы - какие-то вещи понятны настолько, чтобы вовсе не ждать пока у тебя всё рухнет а оптимизировать сразу.
 

AnToXa

prodigy-одаренный ребенок
у фишера есть то что называется словом "опыт"
 

Wicked

Новичок
fisher
у меня немного другое понимание первого пункта. Попробую объяснить:
вот, например, blitz - разве не пример ухудшения переностимости (универсальности) продукта?
Про денормализацию мы уже выяснили. Пусть даже это диктуется опытом, но это делается заранее.
Про все и вся - разумеется там, где это может пригодиться.

Хотя, возможно, я и ошибаюсь с выводами насчет тебя :)
 
Сверху