写点什么

内存优化表的索引

  • 2013-09-25
  • 本文字数:678 字

    阅读完需:约 2 分钟

SQL Server 2014 的内存优化表对索引的处理方式与传统表相比差别很大。首先也是最重要的一点,你必须有至少一个索引,但同时索引数不能超过8 个。

必须的那个索引用于组织内存中的数据。不同于传统的表,内存优化表并不支持将数据存储到一个无序堆中。这个索引包含主键,这也是表所唯一允许的唯一列。另外,主键不能是一个标识列。

事实上,标识列是被完全禁止的。这极有可能是支持锁无关写操作所需要的一个限制。

其他7 个索引几乎都是用于辅助join 和order by 操作的。正如前面所提到的,你不能添加额外的唯一索引,也不能使用索引执行外键约束。

你也不能使用触发器解决这些限制,因为内存优化表并不支持。

最后,也不允许检查约束。这意味着几乎所有关注完整性的数据都必须被推送到存储过程或者应用程序层里面。

但是请等一等,还有更多要说明的内容。你还不能在可空的列上放置索引。你也不能使用筛选索引,每一个索引都必须引用每一行。

内部结构

内存优化表中的行并不会被安排在页中。相反,它们分散在内存中。访问它们的唯一方式便是通过索引,这就是至少要有一个索引的原因。

这些索引并不是传统的B 树。它使用一个哈希索引和一个固定数量的桶(buckets)。在理想的情况下,每一个桶仅会容纳一行,因此在创建索引的时候你应该指定期望这个表存储的行的数量。你需要仔细斟酌,对于内存而言超出预算的行数是一个非常大的浪费。

对此,一个计划的替代方案是范围索引(range indexes)。虽然现在还不能用,但是范围索引的期望是能够更好地处理未知数量的行。

明天我们将会继续这个系列,介绍本机编译的查询。

查看英文原文 Indexes in Memory Optimized Tables

2013-09-25 09:321643
用户头像

发布了 321 篇内容, 共 122.1 次阅读, 收获喜欢 19 次。

关注

评论

发布
暂无评论
发现更多内容

帮助你快速使用 Android 的 LiveData 与 ViewModel

android 程序员 移动开发

年末我的Android面试复盘

android 程序员 移动开发

总是听到有人说AndroidX,还有人不知道什么是AndroidX的吗?

android 程序员 移动开发

想做直播的你,这些热门的音视频如何绝对同步的。你get了嘛?(1)

android 程序员 移动开发

工具类之ImageLoader(基于Glide)

android 程序员 移动开发

开发经验2年26岁的Android大龄程序员面试13家公司,逆袭薪资35K的!(1)

android 程序员 移动开发

年轻人,看你骨骼惊奇,我这有一份来自阿里的Android开发学习指南,不仅能让你月入5w(1)

android 程序员 移动开发

开发8年大牛教学Android动画:这是一篇全面-&-详细的-属性动画-总结&攻略

android 程序员 移动开发

开发经验2年26岁的Android大龄程序员面试13家公司,逆袭薪资35K的!

android 程序员 移动开发

微信小程序之自定义轮播图实例 —— 微信小程序实战系列(3

android 程序员 移动开发

开发者,你是如何做到高效开发的

android 程序员 移动开发

微信小程序之商品属性分类 —— 微信小程序实战商城系列(4

android 程序员 移动开发

微信小程序使用七牛云对象存储保存图片和文件

android 程序员 移动开发

底层图像处理之GIF图片的合成与解析(三)

android 程序员 移动开发

开发者须知:女性玩家和手机游戏注意事项

android 程序员 移动开发

开枝散叶的组件化技术,90%的开发者用后都说香

android 程序员 移动开发

强势分享!BAT大牛带你深度剖析《全网最系统Android 三大主流开源框架(附源码

android 程序员 移动开发

微信小程序使用canvas画布生成二维码海报分享图片(完整示例代码)

android 程序员 移动开发

感觉中国程序员前景一片灰暗,是这样吗?

android 程序员 移动开发

当年他问我service,我是这样回答的

android 程序员 移动开发

微服务下的幂等设计

android 程序员 移动开发

尽快的学会某项技术,以应付面试遇到的问题

android 程序员 移动开发

差点就痛失了字节跳动Android岗的Offer,原因竟是因为性能调优!

android 程序员 移动开发

当事人:现在就是非常后悔,开工那天没去上班,老板不仅省了我的开工红包

android 程序员 移动开发

微信小程序之商品属性分类-——-微信小程序实战商城系列(4

android 程序员 移动开发

想做直播的你,这些热门的音视频如何绝对同步的。你get了嘛?

android 程序员 移动开发

年轻人,看你骨骼惊奇,我这有一份来自阿里的Android开发学习指南,不仅能让你月入5w

android 程序员 移动开发

底层学习---Android-IPC机制(二)序列化机制

android 程序员 移动开发

微信小程序之侧栏分类 —— 微信小程序实战商城系列(1

android 程序员 移动开发

总是听到有人说AndroidX,还有人不知道什么是AndroidX的吗?(1)

android 程序员 移动开发

spring boot整合rabbitmq

小鲍侃java

11月日更

内存优化表的索引_架构_Jonathan Allen_InfoQ精选文章