AICon 深圳站聚焦 Agent 技术、应用与生态,大咖分享实战干货 了解详情
写点什么

内存优化表的索引

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

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

关注

评论

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

悦数图数据库 v5.0 及悦数 RAG 正式发布:引领标准化,激发新动能

最新动态

ETLCloud支持的数据处理类型包括哪些?

RestCloud

数据库 数据处理 ETL 数据集成

借助 1688 拍立淘 API 接口,解锁以图找货的无限可能

tbapi

图片搜索商品接口 1688拍立淘接口 以图识货接口

Metasploit Pro 4.22.5-2024102801 发布下载,新增功能简介

sysin

Metasploit

Web3 游戏周报(11.03 - 11.09)

Footprint Analytics

链游

离散元仿真技术加速工业自动化发展,助力企业数字化转型

Altair RapidMiner

制造业 仿真 DEM altair 离散元

如何用Redis高效实现点赞功能?用Set?还是Bitmap?

左诗右码

【项目场景】请求数据时测试环境比生产环境多花了1秒是怎么回事?

威哥爱编程

Java 数据库 JavaEE

MatrixOne v2.0.0 release note

MatrixOrigin

数据库 矩阵起源 MO

python模拟Y2K问题

极客罗杰

Astherus:基于真实收益,唤醒 LRT 赛道的第二春

股市老人

【喜报】矩阵起源在2024年中国创新创业大赛斩获多个奖项!

MatrixOrigin

AI 大底座 创新创业大赛

ROS进阶:使用URDF和Xacro构建差速轮式机器人模型

芯动大师

机器人 ROS2 UDRF

火山引擎边缘云项目管理部荣获 PMI 年度杰出 PMO 奖

火山引擎边缘云

项目管理 边缘计算 PMO #项目管理

HCL AppScan Standard 10.7.0 发布下载,新增功能介绍

sysin

AppScan

VMware Tanzu CLI 1.5.0 - VMware Kubernetes 发新版的命令行工具

sysin

Kubernetes Tanzu

释放创作潜力!Flux 模型现已集成至 ComfyUI,快来体验!

MatrixOrigin

数据库 AI 大底座 AI 图像生成

破解低效数字化:JNPF打造数字商业新基建

不在线第一只蜗牛

低代码 数字化

怎么绘制服务蓝图?10个服务蓝图模板盘点推荐!

职场工具箱

职场 画图软件 在线白板 画图 服务蓝图

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