阿里、蚂蚁、晟腾、中科加禾精彩分享 AI 基础设施洞见,现购票可享受 9 折优惠 |AICon 了解详情
写点什么

内存优化表的索引

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

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

关注

评论

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

MVCC

急需上岸的小谢

9月月更

在小程序中开启直播的解决方案

Geek_99967b

小程序容器 小程序开发

Dragonfly 基于 P2P 的文件和镜像分发系统

SOFAStack

容器 云原生 镜像 日志 文件

数据治理的内核:数据质量

Taylor

数据治理 数据质量管理 数据质量 数据生命周期

Vue基础语法--插槽(Slot)基础使用

Sam9029

Vue 前端 基础 9月月更

小程序能否成为电商的突破口

Geek_99967b

小程序 小程序开发

观测云&亚马逊云科技「可观测性体验日」北京站圆满落幕

观测云

行业智能化走向何方?昇腾AICE带来的新范式,新起点

脑极体

「工作小记」接口请求数据的缓存实践

叶一一

前端 设计思维 9月月更

小程序容器技术加入到混合App开发队伍

Geek_99967b

小程序 混合开发

深入学习SAP UI5框架代码系列之四:HTML原生事件 VS UI5 Semantic事件

Jerry Wang

JavaScript SAP SAP UI5 ui5 9月月更

前端食堂技术周刊第 51 期:pnpm v7.10.0、8 月登陆网络平台的新内容、重新思考流行的 Node.js 模式和工具、打包 JavaScript 库的现代化指南

童欧巴

chrome Node React Chrome开发者工具 pnpm

ShareSDK Android端主流平台分享示例

MobTech袤博科技

an'droid

动态规划-编辑距离

wing

SD-WAN网络可靠性设计

阿泽🧸

9月月更 网络可靠性设计

C++学习------iso646.h与limits.h头文件的源码学习

桑榆

c++ 9月月更

2022服贸会 | 洞见科技姚明:从智能化到密态化,数据科技向善升级

洞见科技

对jdbc的讲解

楠羽

JDBC 笔记 9月月更

LeetCode-26. 删除有序数组中的重复项(java)

bug菌

9月日更 Leet Code 9月月更

使用 CRD 开启您的 Ingress 可观测之路

观测云

轻松理解20种常用AI算法

Baihai IDP

AI 算法

计算机网络——速率相关的性能指标

StackOverflow

计算机网络 编程‘ 9月月更

业务应用小程序化,一种潜在的技术趋势

Speedoooo

小程序 移动开发 小程序容器

跟着卷卷龙一起学Camera--AWB

卷卷龙

ISP 9月月更

剖析智能运维的五大应用场景

穿过生命散发芬芳

智能运维 9月月更

设计模式的艺术 第八章建造者设计模式练习(开发一个视频播放软件,为了方便用户使用,该播放软件提供多种界面显示模式,例如完整模式、精简模式、记忆模式、网络模式等。在不同的显示模式下主界面的组成元素有所差异。例如,在精简模式下只显示主窗口、控制条)

代廉洁

设计模式的艺术

技术团队如何高效落地代码CR

慕枫技术笔记

架构 后端 9月月更

LeetCode-21. 合并两个有序链表(java)

bug菌

9月日更 Leet Code 9月月更

Dubbo Mesh:从服务框架到统一服务控制平台

阿里巴巴中间件

阿里云 微服务 云原生 dubbo

为什么要用小程序容器做小程序生态

Geek_99967b

小程序 小程序容器 小程序开发

DDD领域驱动设计

源字节1号

软件开发 前端开发 后端开发 软件设计思想

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