суббота, 13 августа 2011 г.

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

Вопрос был в best practices. То, что есть джойн, как бы известно.

On 12 авг, 22:53, Val <v.alekse...@gmail.com> wrote:
> подразумевалось конечно
>
> 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

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

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