Коллечество запросов к ДБ
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



Коллечество запросов к ДБ Expand / Collapse
Автор
Сообщение
22.06.2006 2:47


Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 12.06.2008 11:23
Сообщ.: 96, Visits: 535
 Доброе время суток!

 Еще один вопрос возник по ходу разработки. Сколько запросов к MySQL за раз можно считать приемлимым?
 Например, чтобы отобразить темы в форуме у меня делается порядка 6 запросов к базе. Сначала делается запрос по темам, потом по ID номерам пользователей делается запрос их логинов, дате создания тем и т.п. Далее делается проверка пользователей, которые просматривают данную тему. И т.д. Нормально ли 6 завпрсов за раз? Или их стоит сократить?

 Если сокращать кол-во запросов, я думал создать в ДБ триггер, который будет необходимую информацию выдавать в минимальное количество запросов.

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

Сообщ. #899346
22.06.2006 9:32


Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

модератор
Last Login: 24.08.2008 22:23
Сообщ.: 1 329, Visits: 15 054
Лучше спроектировать базу таким образом, чтобы минимизировать количество и сложность запросов на выборку, усложнив логику и количество запросов на вставку/обновление.
Хранить вычисляемые данные в таблицах и вычислять их при обновлении данных, а не вычислть их "на лету".
При этом количество хранимых данных будет избыточным, что будет противоречить духу нормализации баз данных, но в каждом конкретном случае приходится искать компромисс.
Сообщ. #899351
22.06.2006 10:55
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
Тут все зависит от кол-ва посетителей на сайте. Если, к примеру, на сайт заходит 1 человек в час то можно хоть 50 запросов делать с одной страницы. Хотя, конечно, чем меньше запросов к базе тем лучше. Уменьшать кол-во запросов можно оптимизируя структуру БД, кешируя часто используемые и редко изменяемые данные. Триггерры в данном случае по моему совсем не нужны. Пользуйся JOIN-ами.
Сообщ. #899376
22.06.2006 11:54


Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 12.06.2008 11:23
Сообщ.: 96, Visits: 535
Возможно ли заполнить ячейку данными из другой таблицы, зная id?

Например у меня есть таблица в schema1.table1
id | message | text_id | text |

и таблица в schema2.table1
id | text |

И по text_id мне необходимо заполнить ячейки text. Т.е. что-то вроде Exel'я получается A1=B1.

Сообщ. #899389
22.06.2006 12:00


Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 12.06.2008 11:23
Сообщ.: 96, Visits: 535
А! Вот кажется решение!

SELECT * FROM schema1.table1 LEFT JOIN schema2.table1 ON schema1.table1.text_id=schema2.table1.id;

 Помоему это как раз выполнит то, что я описал выше.

Сообщ. #899391
22.06.2006 12:17
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
Выполнит, да.
Сообщ. #899398
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl

Время GMT +3:00, Сейчас 4:36