[英]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.