【问题标题】:SQL choose data structure during creating index?SQL在创建索引时选择数据结构?
【发布时间】:2016-02-04 22:45:16
【问题描述】:

请问有没有办法在 SQL(特别是 SQL Server 2014)中指定索引的数据结构(B 树、哈希表、R 树等)?

当我谷歌它时,我只能找到以下语法。有哪位大师能开导吗?谢谢!

CREATE INDEX name_index
ON table_name (Column_Name, Column_name2)

【问题讨论】:

    标签: sql sql-server indexing data-structures


    【解决方案1】:

    此处记录了各种类型的索引、用途和底层结构

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

    总结:磁盘上的聚集和非聚集索引都是 B 树,仅内存索引可以是基于哈希的。列存储索引的结构再次不同。 (更不用说空间、XML 和全文索引)

    【讨论】:

    • 后续问题:如果我使用“CREATE INDEX index_name ON table_name (column_name)”,这会使用默认索引,即聚集索引(B 树)吗?
    • 啊啊事情变了=)。过去只是 B 树,但显然可以使用内存表定义 HASH 索引。这会以内存换取性能(自然)。请注意,仅 SQL Server 2014+ 支持内存表。
    • @Chubaka INDEX 的类型(哈希或 B-Tree)取决于表的类型:内存优化或基于磁盘。您只能通过在创建 INDEX (NONCLUSTERED HASH) 时明确指定来为内存优化表创建基于 HASH 的索引。有关详细信息,请参阅CREATE TABLE Documentation
    猜你喜欢
    • 2022-01-17
    • 2022-01-26
    • 1970-01-01
    • 2012-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-26
    相关资源
    最近更新 更多