我试图尝试索引,但我还是新手。我们说我经常使用以下查询,因此我需要为表music
和musicians
制作索引。
SELECT *
FROM music
where musician_id = @id
SELECT *
FROM music
where musician_id = @id and date_of_birth > @date
SELECT *
FROM music
where date_of_birth > @date1 and date_of_birth < @date2
SELECT first_name, last_name, musician_website
FROM musicians
where last_name = @last_name
SELECT customer_id, first_name, last_name,musician_website
FROM musicians
where last_name = @last_name and musician_website= @site
如果我想为这些查询制作索引,您认为什么是最佳解决方案?是否最好为我想要的每个列创建一个(例如1个用于musician_id
,一个用于date_of_birth
等...)或者可以将它们像这样对:musician_id
with date_of_birth
,然后是last_name
musician_website
,然后只需date_of_birth
进行第三次查询(我需要按日期排序)。
这里最好的选择是什么?为什么?
答案 0 :(得分:2)
您想要的索引是:
music(musician_id, date_of_birth)
(查询1和2)music(date_of_birth)
(查询3)musicians(last_name, web_site)
(查询4和5)对于最后一个索引,如果您真的需要,可以加入customer_id
和first_name
。