11 月 19 - 20 日 Apache Pulsar 社区年度盛会来啦,立即报名! 了解详情
写点什么

针对 SQL Server 和 SQL Azure 的分区和分片

  • 2011-02-17
  • 本文字数:893 字

    阅读完需:约 3 分钟

对于使用超大数据集工作的开发者来说,水平的分区和分片都是很重要的工具。尽管当前的数据库服务器,像 SQL Server,能够支持上 TB 的 RAM 以及上百个处理器,但是在单个表中所能够存储的数据量还是有限的。这正是水平分区起作用的地方。水平分区既可以在单个服务器中完成,也可以跨多个服务器完成,后者经常指的就是分片(sharding)。

在 SQL Server 2005 中,微软增加了为每个表创建最多 1000 个分区的能力。这种分区会位于单独的服务器中,我们可以使用它把单个的逻辑表分布在多个文件组中。这会立刻提高 I/O 能力,如果有设计良好的 schema,那么它还能够大大提升其它方面的性能。不幸的是这种特性也有很多缺点。因为它仅限于单个机器,所以想要让它有效率,你需要强大的数据库服务器和存储阵列网络。除了硬件成本之外,水平分区特性和需要企业版或者数据中心版本的许可,这两个版本对于每个处理器的零售价分别是 27,495 和 54,990 美元。

对此感兴趣的读者可以阅读白皮书《使用SQL Server 2008 的分区表和索引策略》。这部白皮书很长,但是对于想要在SQL Server 中使用这种特性的人来说,还是应该阅读的。当然,在 DB2 Oracle Sybase Adapter Server MySQL 中也都能找到类似的特性。

在 SQL Server 上暂时还无法实现跨多台服务器的完全数据分区。尽管在存储过程或者服务层代码中我们肯定可以实现必要的逻辑,但这样特别的方法,对于想要关注于产品真正需求的开发者来说,可能无法让他们满意。我们也可以使用 SQL Server 的分布式分区视图,但是规则非常麻烦。例如,我们无法针对分区的列使用标识列或者时间戳,而分区列需要是主键的组成部分。

SQL Azure 承诺,它会通过所谓的“联合(federation)”提供分区功能。乍看起来,这似乎是很大的改善,但即便是 SQL Azure 中的联合的预览版也需要很久之后才能够发布。

同时,希望继续使用 SQL Server 的人可以试着转向第三方的工具。其中一种选择是最近发布的 Enzo SQL Shard 库。 Blue Syntax 的这个开源的项目基于.NET 的任务并行程序库实现,承诺为 SQL Server 和 SQL Azure 提供分片的特性。

查看英文原文: Partitioning and Sharding Options for SQL Server and SQL Azure

2011-02-17 08:042624
用户头像

发布了 340 篇内容, 共 120.3 次阅读, 收获喜欢 12 次。

关注

评论

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

web前端培训React调度器原理分析

@零度

前端开发 React

JAVA中的位运算与二进制操作

爱好编程进阶

Java 程序员 后端开发

Java代理模式,一次复习完4种动态代理实现方式

爱好编程进阶

Java 程序员 后端开发

DockerFile的编写构建镜像步骤,常用命令和案例

爱好编程进阶

Java 程序员 后端开发

dubbo实战之二:与SpringBoot集成

爱好编程进阶

Java 程序员 后端开发

Java8-Stream:2万字20个实例,玩转集合的筛选

爱好编程进阶

Java 程序员 后端开发

Java基础06 数组基础

爱好编程进阶

Java 程序员 后端开发

Dubbo如何处理业务异常,这个一定要知道哦!

爱好编程进阶

Java 程序员 后端开发

HotSpot JVM 内存管理

爱好编程进阶

Java 程序员 后端开发

Java Script

爱好编程进阶

Java 程序员 后端开发

JavaWeb之Cookie和Session技术(四)

爱好编程进阶

Java 程序员 后端开发

JavaWeb之JSP技术(三)

爱好编程进阶

Java 程序员 后端开发

JavaWeb快速入门--JSP(2)

爱好编程进阶

Java 程序员 后端开发

Java中的复用类

爱好编程进阶

Java 程序员 后端开发

hadoop

爱好编程进阶

Java 程序员 后端开发

Hexo 搭建:搭建与配置

爱好编程进阶

Java 程序员 后端开发

Java agent还不了解的程序员该反省一下了

爱好编程进阶

Java 程序员 后端开发

容器化|在 S3 备份恢复 RadonDB MySQL 集群数据

RadonDB

MySQL 数据库 Kubernetes 高可用 容器化

Docker下Prometheus和Grafana三部曲之三:自定义监控项开发和配置

爱好编程进阶

Java 程序员 后端开发

FusionStorage原理及组件

爱好编程进阶

Java 程序员 后端开发

针对SQL Server和SQL Azure的分区和分片_.NET_Jonathan Allen_InfoQ精选文章