2016-02-04 81 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)。 –