写点什么

内存优化表的索引

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

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

关注

评论

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

企业im是什么?

BeeWorks

企业级移动应用平台是什么?

BeeWorks

基于Java+SpringBoot+Vue桂林旅游景点导游平台设计和实现

hunter_coder

后端开发

XR实时云渲染-加速虚拟仿真云教学呈现!

3DCAT实时渲染

云渲染 虚拟仿真 实时云渲染 虚拟仿真云教学

基于Java+SpringBoot+Vue多媒体素材管理系统设计和实现

hunter_coder

后端开发

AI 大模型微调训练营毕业总结

gigifrog

极限科技荣耀入选《中国数据库产业图谱(2024年)》,引领搜索与分析型数据库新篇章

极限实验室

信通院 极限科技 搜索型数据库 中国数据库产业图谱

基于Java+SpringBoot+Vue汽车服务管理系统设计和实现

hunter_coder

后端开发

客户在哪儿AI与其他服务于B端的科技产品有何不同

客户在哪儿AI

人工智能 ToB营销 ToB增长 大客户营销

1688商品详情数据接口|1688API接口指南

tbapi

1688 1688商品详情接口 1688API 1688商品详情数据接口

基于业务规则拆分用户故事——避免工作局促

Bruce Talk

敏捷开发 Agile User Story

基于Java+SpringBoot+Vue狗粮销售商城系统设计和实现

hunter_coder

后端开发

基于Java+SpringBoot+Vue前后端分离毕业论文管理系统设计和实现

hunter_coder

后端开发

IM即时通讯软件,企业即时通讯系统—WorkPlus

BeeWorks

义乌购商品详情API接口:探索海量商品的深度信息

tbapi

义乌购商品详情数据接口 义乌购API 义乌购商品数据采集

企业级im即时通讯可以给企业解决什么问题?

BeeWorks

一个改行做程序员的老ToB市场人的心路历程

客户在哪儿AI

人工智能 ToB营销 ToB增长 大客户营销

基于Java+SpringBoot+Vue健身俱乐部管理系统设计和实现

hunter_coder

后端开发

基于Java+SpringBoot+Vue扶农助农政策管理系统设计和实现

hunter_coder

后端开发

基于Java+SpringBoot+Vue教学资源库设计和实现

hunter_coder

后端开发

基于Java+SpringBoot+Vue服装生产管理设计和实现

hunter_coder

后端开发

AI视界周刊第 1 期:最具性价比 GPT-4o mini 发布、大模型集体失智、语言模型安全漏洞

战场小包

人工智能 行业资讯

基于Java+SpringBoot+Vue前后端分离毕业就业信息管理系统设计和实现

hunter_coder

后端开发

基于Java+SpringBoot+Vue前后端分离癌症患者交流平台设计和实现

hunter_coder

后端开发

基于Java+SpringBoot+Vue旅游管理系统设计和实现

hunter_coder

后端开发

基于Java+SpringBoot+Vue来访管理系统设计和实现

hunter_coder

后端开发

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