Generally indexes on binary fields true/false male/female are not terrible
effective.


On Tue, Jan 28, 2014 at 12:40 PM, Jimmy Lin <y2klyf+w...@gmail.com> wrote:

> I have a simple column family like the following
>
> create table people(
> company_id text,
> employee_id text,
> gender text,
> primary key(company_id, employee_id)
> );
>
> if I want to find out all the "male" employee given a company id, I can do
>
> 1/
> select * from people where company_id=xxxx'
> and loop through the result efficiently to pick the employee who has
> gender column value equal to "male"
>
> 2/
> add a seconday index
> create index gender_index on people(gender)
> select * from people where company_id='xxx' and gender='male'
>
>
> I though #2 seems more appropriate, but I also thought the secondary index
> is helping only locating the primary row key, with the select clause in #2,
> is it more efficient than #1 where application responsible loop through the
> result and filter the right content?
>
> (
> It totally make sense if I only need to find out all the male employee(and
> not within a company) by using
> select * from people where gender='male"
> )
>
> thanks
>

Reply via email to