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

Sql 使用这些重复查询进行索引的最佳方法,sql,sql-server,database,indexing,Sql,Sql Server,Database,Indexing,我正在尝试使用索引,但我还是新手。假设我经常使用以下查询,所以我需要为表music和musers创建索引 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 &g

我正在尝试使用索引,但我还是新手。假设我经常使用以下查询,所以我需要为表
music
musers
创建索引

    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
选择*
来自音乐
其中_id=@id
挑选*
来自音乐
其中音乐家\u id=@id和出生日期>@date
挑选*
来自音乐
其中出生日期>日期1和出生日期<日期2
选择名字、姓氏、音乐家网站
来自音乐家
其中last_name=@last_name
选择客户id、姓氏、音乐家网站
来自音乐家
其中last_name=@last_name和music_website=@site
如果我想为这些查询建立索引,您认为什么是最好的解决方案。是否最好为我想要的每一列制作一个(例如,1代表
音乐家id
,1代表
出生日期
等),或者可以将它们作为这样的配对:
音乐家id
出生日期
,然后用
last\u name
music\u网站
进行第三次查询(我需要按日期排序)。
在这里做什么最好?为什么?

您想要的索引是:

  • 音乐(音乐家id、出生日期)
    (查询1和2)
  • 音乐(出生日期)(查询3)
  • 音乐家(姓氏,网站)
    (问题4和5)

对于最后一个索引,如果确实需要,可以包括
customer\u id
first\u name

您需要的索引是:

  • 音乐(音乐家id、出生日期)
    (查询1和2)
  • 音乐(出生日期)(查询3)
  • 音乐家(姓氏,网站)
    (问题4和5)

对于最后一个索引,如果确实需要,您可以包括
客户id
名字

至少包括表架构。。。为什么
音乐
出生日期
?我们应该猜到你想在那里包含一个连接吗?不,这只是表的一个坏名字。table music包含关于音乐家和出生日期的信息。听起来你需要在索引之前担心。是的,真的,谢天谢地,我才是项目的开始。感谢您指出这一点。至少包括表架构。。。为什么
音乐
出生日期
?我们应该猜到你想在那里包含一个连接吗?不,这只是表的一个坏名字。table music包含关于音乐家和出生日期的信息。听起来你需要在索引之前担心。是的,真的,谢天谢地,我才是项目的开始。感谢您指出这一点。查询1、2和3指的是一个名为
music
的表,而不是
music
@SqlZim。非常感谢。比I更好的眼睛。查询1、2和3指的是一个名为
music
的表,而不是
musiers
@SqlZim。非常感谢。眼睛比我好。