Thread: Advice for index design
I have a table of artists with fields like the ones below:
* Name
* Birthday
* Sex (male/female)
Our application offers a catalog of artists where a user can select a range of birthdays and/or sex. For example, a user can get an artists catalog for those male artists who were born between May 1, 1970 and May 1, 1990 ordered by birthday and, within each birthday date, ordered by name. I can think of defining one index for birthday, one index for name, and one index for sex. Also, I can think of defining a compound index for birthday + name. Also there could be a compound index for sex + name. Another option could be a compound index for birthday + sex + name. There are many possible combinations. What is a good index design approach? Maybe, setting simple separate indexes (one for each field) would work fine if I need to retrieve data in different combinatios, but I am not sure. Maybe compound indexes is better. I will very much appreciate your advice.
Respectfully,
Jorge Maldonado
On 11/04/13 10:30, JORGE MALDONADO wrote:
I have a table of artists with fields like the ones below:* Name* Birthday* Sex (male/female)Our application offers a catalog of artists where a user can select a range of birthdays and/or sex. For example, a user can get an artists catalog for those male artists who were born between May 1, 1970 and May 1, 1990 ordered by birthday and, within each birthday date, ordered by name. I can think of defining one index for birthday, one index for name, and one index for sex. Also, I can think of defining a compound index for birthday + name. Also there could be a compound index for sex + name. Another option could be a compound index for birthday + sex + name. There are many possible combinations. What is a good index design approach? Maybe, setting simple separate indexes (one for each field) would work fine if I need to retrieve data in different combinatios, but I am not sure. Maybe compound indexes is better. I will very much appreciate your advice.Respectfully,Jorge Maldonado
- are neither
- are both
- not specified
- don't want to tell you
- have changed their gender mid career
- ambiguous genitalia
- both
- none
- genitalia that doesn't match their brain wiring
- born looking like a female, but change to male at puberty
Cheers,
Gavin
-----BEGIN PGP SIGNED MESSAGE----- Hash: RIPEMD160 Jorge Maldonado wrote: ... > What is a good index design approach? Maybe, setting simple separate > indexes (one for each field) would work fine if I need to > retrieve data in different combinatios, but I am not sure. Yes, just create separate indexes and you will be fine, especially given the very small size of the table. If you find your queries going slow, you could start investigating compound indexes (or in this case, partial indexes). - -- Greg Sabino Mullane greg@turnstep.com End Point Corporation http://www.endpoint.com/ PGP Key: 0x14964AC8 201304111933 http://biglumber.com/x/web?pk=2529DF6AB8F79407E94445B4BC9B906714964AC8 -----BEGIN PGP SIGNATURE----- iEYEAREDAAYFAlFnSPYACgkQvJuQZxSWSshm6wCggdl2FyowAbca93hYKXGgcXoE iN0AniOL8OS3teTgk6thxkJjUGqEf15k =1Eb6 -----END PGP SIGNATURE-----
On 2013-04-10, JORGE MALDONADO <jorgemal1960@gmail.com> wrote: > Our application offers a catalog of artists where a user can select a range > of birthdays and/or sex. For example, a user can get an artists catalog for > those male artists who were born between May 1, 1970 and May 1, 1990 > ordered by birthday and, within each birthday date, ordered by name. I can > think of defining one index for birthday, one index for name, and one index > for sex. Also, I can think of defining a compound index for birthday + > name. Also there could be a compound index for sex + name. Another option > could be a compound index for birthday + sex + name. There are many > possible combinations. What is a good index design approach? the best approach depends on where you need the most improvement. For your example query an undex on (sex,birthday,name) would be best. -- ⚂⚃ 100% natural