PAV писал(а):
Если совсем не думать об оптимизации системы, то позже затраты на оптимизацию могут оказаться сопоставимыми с затратами на разработку, если не хуже.
Разумеется.
Пожалуй, даже больше: если не думать с самого начала об оптимизации, то конечный продукт будет работать всяко менее эффективно, чем бы мог...
Тем не менее, приоритет оптимизации, особенно на ранних этапах разработки, настолько мал, что им можно пренебречь.
Тут уже используемые технологии разработки и программирования обязаны сделать так, чтобы разработчик, не думая совсем об оптимизации, но правильно применяя технологии, на автомате бы получал прилично эффективное решение.
Думать же об оптимизации слишком вредно, чтобы не говорить, что о ней не надо думать совсем...
Добавлено спустя 17 минут 10 секунд:незваный гость писал(а):
zbl писал(а):
Как она решается? -- кешированием данных в оперативной памяти.
Ни хрена она не решается.
Совсем не решается? типа, если я 100 раз прочитаю один и тот же файл, то каждый раз время чтения будет одним и тем же (большим)?
Конечно, было бы куда лучше, если бы диск работал так же быстро, как память...
незваный гость писал(а):
И ответ Ваш не в тему: я говорил о том, что ненормализованная БД может работать медленнее из-за увеличения объема данных (и, соответственно, увеличения количества запросов к диску), а Вы — о достоинствах СУБД по сравнению с файловыми системами.
Почему
больше данных на диске у Вас автоматически означает
больше данных считывается с диска?
Естественно, чем больше данных считывается с диска (особенно, если их больше объёма кеша дисковода), тем медленнее работает система.
Если все данные базы регулярно перепахиваются -- кранты в любом случае.
Но в реальности некоторые данные читаются много чаще, чем другие.
Главное влияние на производительность оказывает то, насколько СУБД сумеет угадать, какие именно данные будут чаще всего читаться/писаться.
Понятно, что производительность аппаратуры и миллион прочих факторов влияет на производительность БД.
Вопрос, какой фактор главный в том смысле, что учтя его мы получим наибольший выигрыш производительности?
Я лично в первую очередь за кеширование и распределение нагрузки между параллельно работающими серверами.
Относительно этой точки зрения смотрю и на нормализацию.
незваный гость писал(а):
1) кэш надо наполнять => (больше данных — больше запросов к диску — дольше наполнение кэша). 2) Кэш не безразмерен => (больше данных — больше вероятность нехватки кэша — больше вероятность дискового доступа).
С этим мало кто станет спорить...
Если у нас терабайтная база, то на персоналке из магазина за углом мы её вряд ли потянем...
Ещё можно добавить: чем больше кеш, тем медленнее он работает...