2016-02-04 80 views
1

我可以知道是否有任何方法可以指定SQL(特別是SQL Server 2014)中索引的數據結構(B樹,散列表,R樹等)?SQL在創建索引期間選擇數據結構?

當我谷歌它,我只能找到以下語法。任何大師能啓發嗎?謝謝!

CREATE INDEX name_index 
ON table_name (Column_Name, Column_name2) 

回答

4

各種類型指數,使用和底層結構被記錄在這裏

https://msdn.microsoft.com/en-US/library/ms175049(v=sql.120).aspx

摘要:羣集和非聚集的磁盤上的索引是B-樹,記憶只索引可以基於哈希。列存儲索引的結構不同。 (更不用說空間,XML和全文索引)

+0

後續問題:如果我使用「CREATE INDEX index_name ON table_name(column_name)」,它會使用默認索引,它是聚簇索引(B樹)嗎? – Chubaka

+0

Aaah事物變化=)。以前只能使用B樹,但使用內存表時,可以明確定義HASH索引。這是爲了表現(自然地)交易記憶。請注意,內存表僅支持SQL Server 2014+。 –

+0

@Chubaka INDEX(散列或B樹)的類型取決於表的類型:內存優化或基於磁盤。在創建INDEX('NONCLUSTERED HASH')時,通過明確指定內存優化表,您只能擁有基於HASH的索引。有關更多詳細信息,請參閱[CREATE TABLE Documentation](https://msdn.microsoft.com/zh-CN/library/ms174979%28v=sql.120%29.aspx)。 –