пятница, 12 августа 2011 г.

Re: Задача фильтрации множества значений

подразумевалось конечно

SELECT articles.* FROM articles LEFT OUTER JOIN frenemies ON
(frenemies.person_id = 1234 AND articles.person_id =
frenemies.other_person_id) WHERE frenemies.id IS NULL ORDER BY
articles.id LIMIT 10

On Aug 12, 2:46 pm, Val <v.alekse...@gmail.com> wrote:
> Честно говоря не понятно что вы пытаетесь оптимизировать. Представим
> что вы выбрали самое простое решение, есть таблица frenemies которая
> связывает двух людей. Тогда выборка вида (ie pagination)
>
> SELECT articles.* FROM articles LEFT OUTER JOIN frenemies ON
> articles.person_id = frenemies.other_person_id WHERE frenemies.id IS
> NULL ORDER BY articles.id LIMIT 10
>
> займет миллисекунды даже при десятках миллионов записий в каждой из
> таблиц (при правильно расставленных индексах и таблицах/индексах в
> оперативке).
>
> On Aug 12, 9:23 am, Sergey Petrov <rubywie...@gmail.com> wrote:
>
>
>
> > К тому же булево поле тут вообще не причем (связь многие-ко-многим),
> > что-то у меня этот момент из головы выпал. Что если использовать какой-
> > нибудь BigTable или что-то подобное, оно хорошо умеет фильтровать по
> > ключу?

--
--
Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы "RubyOnRails to russian" на группах Google.
FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ

Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
ror2ru@googlegroups.com
Чтобы отменить подписку на эту группу, отправьте сообщение по адресу: ror2ru-unsubscribe@googlegroups.com
Дополнительные варианты находятся на странице группы http://groups.google.com/group/ror2ru?hl=ru

Комментариев нет:

Отправить комментарий