簡體   English   中英

復合索引並查詢到單個列:是否需要索引?

[英]Compound index and query to a single column: do I need an index?

我有一張桌子SchoolMembers ,它有兩列:

  person_id   school_id
 -------------------------
    1134       361
    1135       362
         ...

該表的主鍵是{person_id, school_id} ,因此此組合是唯一的。

使用稱為PK_dbo.SchoolMembers索引對主鍵進行索引

  • person_id沒有索引
  • school_id沒有INDEX
  • {person_id, school_id}有一個索引

問題:如果我有此查詢:

     SELECT * from SchoolMembers where person_id = 1135

...我應該為person_id提供INDEX嗎? 我需要快速查詢

問題:如果我有此查詢: SELECT * from SchoolMembers where person_id = 1135 ...我應該為person_id提供一個索引嗎?

否。{person_id,school_id}上的唯一索引就足夠了。 通常,索引可以由其前導列用於有效訪問。

主鍵的列順序有所不同。 您已將您的密鑰描述為person_id然后是school_id 使用該設置,在person_id上進行搜索時應該會獲得良好的性能。 但是,相反的情況並不正確。 如果要通過school_id搜索,它將無法快速找到該行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM