写点什么

内存优化表的索引

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

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

关注

评论

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

等待时间的忍受度

箭上有毒

8月日更

【设计模式】单例模式

Andy阿辉

编程 程序员 后端 设计模式 8月日更

藏在煤箱中的文明:一个会说话的箱子能告诉我们什么?

脑极体

Linux 环境如何使用 kill 命令优雅停止 Java 服务

陈皮的JavaLib

Java Linux 面试 springboot 8月日更

前端之数据结构(一)

Augus

数据结构 8月日更

【Vue2.x 源码学习】第二十五篇 - 数组依赖收集的原理

Brave

源码 vue2 8月日更

刷完这套200+大厂Java真题手册,成功拿到阿里,京东,美团的offer

Java 编程 架构 面试 架构师

数据缓存历险记(二)--被过期键经理上了一课

卢卡多多

redis Redis键过期监听 8月日更

【网络安全】渗透工程师面试题总结大全

网络安全学海

面试 网络安全 信息安全 渗透测试 漏洞

Kong-To-APISIX:减轻你的迁移压力

API7.ai 技术团队

开源 网关 kong APISIX

阿里人,五年心血汇聚而成这份Spring Cloud Alibaba开发手册

Java架构师迁哥

Vue进阶(五):与 Vuex 的第一次接触

No Silver Bullet

Vue vuex 8月日更

Gin 介绍

xcbeyond

Go 语言 gin 8月日更

趁着课余时间学点Python(三)变量,基本数据类型,运算符

ベ布小禅

8月日更

使用 Sequelize 快速构建 PostgreSQL 数据的 CRUD 操作

devpoint

node.js postgresql API 8月日更

为了进阿里,我通宵达旦三个月,学了这些技术点(附Java思维导图)

Java 编程 架构 面试 架构师

【前端 · 面试 】HTTP 总结(四)—— HTTP 状态码

编程三昧

面试 大前端 HTTP 8月日更

NLP随笔(四)

毛显新

自然语言处理 神经网络 深度学习

小技巧 | Get 到一个 Web 自动化方案,绝了!

星安果

chrome 自动化 Web 插件 chrome扩展

Nacos注册中心之概要设计

捉虫大师

微服务 nacos 服务发现

当一只「无头苍蝇」又何妨?

非著名程序员

读书笔记 提升认知 个人提升 8月日更

SpringBoot 整合 Drools

LeifChen

drools springboot 规则引擎 8月日更 业务规则

【翻译】数据包的旅程 - 主机之间通信

luojiahu

计算机网络 OSI模型

读书日送书丨关于音视频技术你需要知道的二三事

声网

人工智能

面试官:JVM的运行时数据区了解不?

程序员阿杜

Java JVM JVM、 8月日更

IDEA下载及新建第一个Java项目(Helloworld)

Bob

8月日更

金九银十想面BAT?那这些JDK动态代理的面试点你一定要知道

编程菌

Java 编程 程序员 计算机 技术宅

试错,然后成长

escray

学习 极客时间 朱赟的技术管理课 8月日更

「SQL数据分析系列」16. 分析函数

Databri_AI

sql 函数 分析

Dremio 推出在 AWS 云上运行的数据湖服务

水滴

数据湖 8月日更 Dremio

Error SHA256 mismatch

一个大红包

8月日更

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