Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Лучше экономить место или время?
 
 автор: Киналь   (30.08.2005 в 22:32)   письмо автору
 
 

Что ценнее - малый размер таблиц в базе или малое количество обращений к ним? Напрмер, в гостевой можно в таблице с постами хранить и id автора, и его ник - тогда одним запросом выводится и то и другое. Или можно хранить только id, а ник узнавать с помощью дополнительного запроса к таблице пользователей. В первом случае используется лишнее поле, во втором - лишний запрос. Гостевая взята просто для примера; в целом, на что надо обращать внимание?

   
 
 автор: cheops   (31.08.2005 в 00:33)   письмо автору
 
   для: Киналь   (30.08.2005 в 22:32)
 

Верно подмечено, что скорость выполнения и объём базы данных являются практически взаимозаменяемыми величинами (исключение составляет случай, когда скорость падает по причине большого объёма базы). Здесь сложно заранее сказать - это зависит от задачи и условий. Ряд хостингов, например не тарифицируют объём базы данных - бери сколько хочешь (ну так чтобы на тебя внимание не обращали), а оплачиваешь только место под файлы. Кроме того ряд задач требуют максимально быстрого выполнения поиска, в этом случае лучше проиндексировать столбцы, даже если это приведёт к двух-трёх кратному увеличению скорорости. Мы согласны ещё в два раза увеличить объём базы данных, лишь бы скорость не падала. Однако с другой стороны разработчику объём базы данных превышающий лимит его тарифного плана может быть критичным.
Пример который вы привели называется нормализацией (разбиение на несколько таблиц) и денормализацией (сведение в одну таблицу). Трудно сказать заранее, мы в форуме вынесли отдельную таблицу авторов, потому что информацию об авторах смотрят не часто, с другой стороны имя автора и его первичный ключ продублированы в таблице сообщений, чтобы не терять в скорости на двухтабличном запросе, при формировании дерева ответов, что происходит очень часто.
Нельзя дать универсальный ответ на все случаи жизни, это как в экномике пушки и масло, и в программировании скорость и читабельность. Нужно искать всегда компромис. Тенденция однако такова - цены на объём памяти падают, а запросы пользователей растут - поэтому в база данных следует ориентироваться на скорость - но стараться избегать преждевременной оптимизации, ибо по словам классика "это корень всех зол".

   
 
 автор: Киналь   (31.08.2005 в 09:16)   письмо автору
 
   для: cheops   (31.08.2005 в 00:33)
 

Спасибо за столь подробный ответ!

>Пример который вы привели называется нормализацией
>(разбиение на несколько таблиц) и денормализацией (сведение
>в одну таблицу).
Приятно узнать, что ты на самом деле спрашиваешь=)

>Тенденция
>однако такова - цены на объём памяти падают, а запросы
>пользователей растут - поэтому в база данных следует
>ориентироваться на скорость
Вот это и хотелось услышать - к чему, в конечном счете, стремиться.

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

   
 
 автор: cheops   (31.08.2005 в 11:31)   письмо автору
 
   для: Киналь   (31.08.2005 в 09:16)
 

>>но стараться избегать
>>преждевременной оптимизации, ибо по словам классика
>>"это корень всех зол"
>Неслабый классик, который говорил об оптимизации таблиц
>MySql )))
Ну вряд ли Кнут имел ввиду конкретный код :))), в те времена программист мог за несколько лет поработать на нескольких операционных системах и нескольких платформах - это обобщение вообще на программирование.

   
 
 автор: Киналь   (31.08.2005 в 13:48)   письмо автору
 
   для: cheops   (31.08.2005 в 11:31)
 

Упс... Я как-то при слове "классик" о литературе вспомнил:))

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования