写点什么

SQL Server 2016:内存列存储索引

  • 2015-06-04
  • 本文字数:634 字

    阅读完需:约 2 分钟

SQL Server 2016 的一项新特性是可以在“内存优化表(Memory Optimized Table)”上添加“列存储索引(Columnstore Index)”。要理解这是什么意思,我们应该首先解释术语列存储索引和内存优化表。

列存储索引是一种按照列而不是行组织数据的索引。每个数据块只存储一个列的数据,最多包含100 万行。因此,如果数据为5 列1000 万行,那么就需要存储在50 个数据块中。当只查询部分列时,这种数据组织策略特别有效,因为数据库不会从磁盘读取用户不关心的列。

列存储索引比表扫描要快得多,但没有传统的B 树索引那么快。这特别适合于那种无法预测需要什么索引的即时报表。

内存优化表正如它的名字, 它是一个经过优化并一直驻留在内存中的表。这有许多好处,比如锁无关写,但它也有很大的局限性。比如,只允许有8 个索引,这对于用于即时查询的表而言限制太大。

SQL Server 2016 部分地弥补了这种限制,它允许那 8 个索引中的其中一个为列存储索引。但要遵循如下规则:

  • 像内存优化表上的其它索引一样,列存储索引必须在表创建时定义。
  • 列存储索引必须包含基表中的所有列。(在普通表上的列存储索引不存在这种限制。)
  • 列存储索引必须包含基表中的所有行。换言之,它不能是“筛选索引(filtered index)”。

一个与内存优化表相关的特性是创建本地编译查询。数据库使用C 编译器将这些查询编译成了机器码,而不使用SQL Server 解释器。使用列存储索引的查询可以使用这个选项,而不用总是通过解释器运行。

查看英文原文 SQL Server 2016: In-Memory Columnstore Indexes

2015-06-04 10:162900
用户头像

发布了 1008 篇内容, 共 443.8 次阅读, 收获喜欢 346 次。

关注

评论

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

软件测试 | 简历投了一大堆,面试机会没几个?

测吧(北京)科技有限公司

测试

软件测试 | 如何找到适合您需求的性能测试工具?

测吧(北京)科技有限公司

测试

软件测试 | 揭秘设计现实负载测试场景的艺术:实用方法详解

测吧(北京)科技有限公司

测试

mac空间不足怎么办 mac内存满了怎么清理

阿拉灯神丁

MacBook CleanMyMac X mac‘ 电脑软件 杀毒软件

软件测试 | 为何测试环境难以搭建与维护?

测吧(北京)科技有限公司

测试

软件测试 | 平衡规模:测试中经济有效的硬件和软件解决方案策略

测吧(北京)科技有限公司

测试

线程安全使用 HashMap 的四种技巧

不在线第一只蜗牛

安全 线程

云架构系统如何进行大规模性能测试?

测吧(北京)科技有限公司

测试

软件测试 | 如何选择适合自己业务需求和技术栈的工具?

测吧(北京)科技有限公司

测试

软件测试 | 如何解读各种性能测试数据和曲线图?

测吧(北京)科技有限公司

测试

软件测试 | 想做性能测试的你,是否面临以下痛点?

测吧(北京)科技有限公司

测试

软件测试 | 不是已经做了性能测试么,为什么系统一上线就崩溃了?

测吧(北京)科技有限公司

测试

Doris 实现原理之高效存取 varchar 字符串

Baidu AICLOUD

大数据

掌握在测试中精确模拟用户行为的艺术:技术和工具

测吧(北京)科技有限公司

测试

程序员都应该了解的7款API接口平台

幂简集成

API API接口平台 API市场

服务器成本太高,如何确定有效主机容量,节约成本?

测吧(北京)科技有限公司

测试

软件测试 | 简化测试数据生成和管理的复杂性

测吧(北京)科技有限公司

测试

软件测试 | 分析和处理海量测试数据集的策略

测吧(北京)科技有限公司

测试

软件测试 | 性能测试优化中无缝跨团队协作的策略

测吧(北京)科技有限公司

测试

前端性能优化:从系统分析讲到实践策略

秃头小帅oi

软件测试概念与体系

测吧(北京)科技有限公司

测试

一键自动化博客发布工具,用过的人都说好(腾讯云篇)

程序那些事

工具 程序那些事 自动发布

时序数据库 vs 实时数据库,一文搞懂!

Apache IoTDB

SQL Server 2016:内存列存储索引_架构_Jonathan Allen_InfoQ精选文章