Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Емкий подзапрос. Как поступить лучше? MySQL 
:(
    Опции темы
Wowa
Дата 6.7.2008, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: нет
Всего: 290



Запрос наподобие:
Код

select *, SUM(ball) from objects where user_id IN (select userid from users where ...)



Обе таблицы содержат несколько десятков миллионов записей. Ожидается, что подзапрос
Код

select userid from users where ...

должен возвращать около 100 000 разных user_id или даже больше. Поэтому у меня есть сомнения насчет скорости обработки такого запроса.. У кого-нить есть опыт? Быть может запрос как-то оптимальнее стоит сделать? Или же MySQL сам оптимизирует и не стоит беспокоиться о производительности?

Добавлено через 9 минут и 58 секунд
LIMIT в подзапрос встроить нельзя, т.к. тогда SUM(ball) не будет правильно считаться.
PM WWW   Вверх
Бонифаций
Дата 6.7.2008, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 827
Регистрация: 15.9.2005
Где: Brisbane

Репутация: нет
Всего: 40



Врятли он сам оптимизирует запрос.


легко переписывается в join

Код

select ... sum(objects.ball) from objects o, users u where u.userid = o.user_id and .....





--------------------
 Бонифаций.
 
PM MAIL ICQ Skype GTalk Jabber YIM   Вверх
skyboy
Дата 7.7.2008, 09:46 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 15
Всего: 260



Цитата(Wowa @  6.7.2008,  12:39 Найти цитируемый пост)
Или же MySQL сам оптимизирует и не стоит беспокоиться о производительности?

Цитата(Бонифаций @  6.7.2008,  15:00 Найти цитируемый пост)
Врятли он сам оптимизирует запрос.

можно просто сделать explain и посмотреть факт использования ключей при сравнении objects.user_id = users.userid  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Составление SQL-запросов | Следующая тема »


 




[ Время генерации скрипта: 0.1147 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.