使用这些重复查询进行索引的最佳方法

时间:2017-01-31 19:33:00

标签: sql sql-server database indexing

我试图尝试索引,但我还是新手。我们说我经常使用以下查询,因此我需要为表musicmusicians制作索引。

    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进行第三次查询(我需要按日期排序)。 这里最好的选择是什么?为什么?

1 个答案:

答案 0 :(得分:2)

您想要的索引是:

  • music(musician_id, date_of_birth)(查询1和2)
  • music(date_of_birth)(查询3)
  • musicians(last_name, web_site)(查询4和5)

对于最后一个索引,如果您真的需要,可以加入customer_idfirst_name