QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

内存优化表的索引

  • 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:321605
用户头像

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

关注

评论

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

下周要开始“卖桃者说”代班计划了

霍太稳@极客邦科技

日常

知乎Matisse图片库在Android10上拍照,预览问题

三爻

android

钩陈/ 好中文作业:巴别塔

ZoomQuiet大妈

写作 大妈 是也乎 IMHO 蟒营®

月薪 3W 的 Apple 微信编辑是这么发文章的 |如何发类似 Apple 微信公众号的文章效果

陈东泽 EuryChen

CSS 微信 大前端 apple 微信公众号

原创 | TDD工具集:JUnit、AssertJ和Mockito (二十一)编写测试-测试模板

编程道与术

Java 编程 TDD 单元测试 JUNI

自由是不是随心所欲?

Neco.W

个人成长 自由 控制

重学 Java 设计模式:实战外观模式「基于SpringBoot开发门面模式中间件,统一控制接口白名单场景」

小傅哥

设计模式 小傅哥 重构 代码质量 代码坏味道

常用运筹学软件整理

张利东

面向对象的三个基本特征(要素)

彭阿三

三要素 三个基本特征 封装、继承、多态

ZooKeeper 数据模型:节点的特性与应用

CoderLi

zookeeper 源码分析 数据模型 节点

kubernetes简单入门(多图少字版)

绿星雪碧

Kubernetes 入门

JAVA 中的 CAS

犀利豆

Java 并发 CAS

情绪管理 - ABC理论

石云升

情绪控制 ABC理论 费斯汀格法则

2w字长文!手撸一套 Java 基础面试题

苹果看辽宁体育

Java 后端 Java25周年

Java 序列化

CoderLi

Java 程序员 后端 序列化

Zookeeper-Access Control List(ACL)

CoderLi

Java zookeeper 源码分析 后端

iPad配置OpenVPN客户端

wong

ipad OpenVPN

华硕灵珑II笔记本电脑——自由work不设限

最新动态

架构师训练营学习总结——框架设计【第二周】

王海

极客大学架构师训练营

Java | 原来 serialVersionUID 的用处在这里

YoungZY

Java

副业月赚 10 万的程序员是如何做销售的?

非著名程序员

程序员 独立开发者 程序人生 提升认知

游戏夜读 | 如何制作游戏?

game1night

Zookeeper 序列化

CoderLi

Java zookeeper 源码分析 后端

2020年5月云主机性能评测报告

博睿数据

云计算 服务器 公有云 机房 云主机

原创下载 | TDD工具集原创开源代码免费下载!

编程道与术

Java 开源 TDD 下载 代码

中电标协提出并归口:《政务APP评价指标》团体标准开启制订工作

博睿数据

App 标准化 中电标协 政务信息化 博睿宏远

如何让程序员变得没朋友

四猿外

程序员 个人感悟 技术人生 经验分享

架构师训练营作业(第二周)

王海

极客大学架构师训练营

机器学习算法评估指标—2D语义分割

做技术BP的文案Gou

学习 2D 评估标准 语义分割

Zookeeper Watcher 流程分析(结合源码)

CoderLi

Java zookeeper 源码分析 后端 Watcher

如何基于 OAM 编写一个扩展 Trait?

钱王骞

云原生 k8s OAM

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