Forum Webscript.Ru

Программирование => Perl => Тема начата: metton от 29 Июня 2006, 23:42:40

Название: Эффективное использование БД в веб-приложениях
Отправлено: metton от 29 Июня 2006, 23:42:40
Не уверен, что пишу пост в правильный раздел, но мне кажется так как вопрос связан именно с веб-приложениями для ведения БД (а я пишу на Perl), тема будет уместнее здесь.

Исходя из не очень удачного опыта разработки одного из своих сайтов мне кажется что использование LEFT JOIN для  объединения нескольких таблиц при выборке не очень эффективно.

Собственно, вопрос следующий. Прав ли я, и насколько широко используется LEFT JOIN при выборке на информационных ресурсах со средним и большим объёмом информации (от 500 до 1000 текстов и от 1000 до 10000). Есть ли различие по скорости выполнения между LEFT JOIN и обычной выборкой из двух таблиц: FROM table1, table2.

Будет ли эффективнее выполнения двух отдельных запросов на выборку и объединения результатов уже в программе?
Название: Эффективное использование БД в веб-приложениях
Отправлено: KiLLjoY aka SerZH от 04 Июля 2006, 16:12:46
Лично моё мненине таково: "кесарю кесарево"... т.е. БД должна выполнять свои функции, а веб-приложение свои. По возможности пользуйтесь INNER JOIN. LEFT OUTER JOIN действительно занимает больше времени. т.к. это объединение подразумевающее отсутствие каких-либо полей. Большое количество однотипных запросов только ещё больше загрузит БД. если есть возможность выполнить всё одним запросом - почему нет. Вопрос в другом - насколько оптимизировано ваше приложение, может использует какие-то ёмкие модули. Поясните что вы имеете под обычной выборкой из двух таблиц, ведь они же по каким-то полям должны быть связаны? И насколько оптимизирована сама структура вашей БД?
Название: Эффективное использование БД в веб-приложениях
Отправлено: metton от 05 Июля 2006, 02:31:26
Потихоньку разбираюсь в теме. Очень помогает ман по EXPLAIN (http://dev.mysql.com/doc/refman/5.1/en/explain.html)