![]() |
Модераторы: skyboy |
![]() ![]() ![]() |
|
neoks |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 425 Регистрация: 5.7.2010 Репутация: 1 Всего: 1 |
Всегда интересовал такой вопрос, как улучшить выборку, использую стандартный метод
Но наткнулся на JOIN и можно сделать все это одним запросом
Скажите какой из этих вариантов лучше и не будет тормозить бд, склоняюсь к JOIN так как мне кажется чем меньше запросов тем лучше )) Это сообщение отредактировал(а) neoks - 11.1.2013, 16:13 |
||||
|
|||||
Arantir |
|
|||
Рыбак без удочки ![]() ![]() Профиль Группа: Участник Сообщений: 960 Регистрация: 18.11.2012 Репутация: нет Всего: 55 |
Чем меньше запросов, тем лучше. Но без фанатизма =)
В первом случае для каждого SELECT будет проводится новый поиск по таблице. В то же время во втором случае, что не сложно заметить, все может быть осуществлено всего лишь за один проход. Итого разница примерно в N раз, где N - количество выбираемых записей. Это сообщение отредактировал(а) Arantir - 11.1.2013, 16:23 -------------------- interface Жопа { // ATTENTION: has to be implemented by every class of the project for proper project work } |
|||
|
||||
neoks |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 425 Регистрация: 5.7.2010 Репутация: 1 Всего: 1 |
То есть JOIN тут в самый раз )) еше вопрос такой, скажем мне нужно подсчитать количество записей в разных таблицах, сейчас я юзаю очень просто
И так для 11 таблиц и того 11 запросов, как тут лучше, будет ли лучше использовать JOIN и вопрос как правильно написать ? ) |
|||
|
||||
Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: нет Всего: 137 |
Одним запросом
получаешь массив count`ов, дальше в цикле выбираешь по нужному cid. По-моему тема никак не относится к php, вопрос чисто по sql |
|||
|
||||
neoks |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 425 Регистрация: 5.7.2010 Репутация: 1 Всего: 1 |
А вот теперь я попал в тупик, скажем нужно объединить 3 таблицы и вытащить только те записи которые мне нужны )
Вытаскивает все записи где есть совпадениея images.cid=users.id и добовляет еше записи где images.id Как ему сказать что нужно вытаскивать только эти images.id и их ID юсеров ? ) Добавлено через 2 минуты и 33 секунды Да сори, чет ступил )) не поглядел куда пишу ) Но мне нужно подсчитать из таблицы images,users,pages, и дт все 11 или оставить как есть одни запрос на каждую таблицу ? ) |
|||
|
||||
Arantir |
|
||||||||
Рыбак без удочки ![]() ![]() Профиль Группа: Участник Сообщений: 960 Регистрация: 18.11.2012 Репутация: нет Всего: 55 |
Не очень понял, но вы что, об этом говорите?
Это сообщение отредактировал(а) Arantir - 11.1.2013, 17:28 -------------------- interface Жопа { // ATTENTION: has to be implemented by every class of the project for proper project work } |
||||||||
|
|||||||||
neoks |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 425 Регистрация: 5.7.2010 Репутация: 1 Всего: 1 |
Ага все разобрался, это я просто не то чет написал и чет коряво отображало, Спасибо за ответы буду дальше оптимизировать запросы ))
|
|||
|
||||
Zloxa |
|
|||
![]() Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 53 Всего: 161 |
Какой милый топик.
Давно с такими не встречался. Zloxa стирает скупую мужскую слезу умиления. Спасибо за добрые эмоции. -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка ![]() |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Составление SQL-запросов | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |