科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道专家点评:如何选择数据库的分割方式(2)

专家点评:如何选择数据库的分割方式(2)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

分割是将表分散到可能位于不同的数据库或者服务器上的多个子表中,这样做的目的是改善读写性能。

作者:Hilary Cotter 来源:互联网 2007年9月12日

关键字: 分割 SQL Server SQL Server 各版本 数据库

  • 评论
  • 分享微博
  • 分享邮件
横向分割改善整体读写性能。

  一个横向定位的表将一些数据行根据某个标准,分散到了不同的表或者数据库(有时候是不同的服务器)中,这些标准包括主键值,日期字段或者位置标识符。

  考虑一下,当一个应用程序有10000个用户都必须访问同一个服务器上的某个表的时候:你可以预见到在这个表上会产生大量的读写冲突。要改善整体的读性能,你可以考虑缩小表的规模,然后将其分散到10个SQL Server上,然后再将负载均衡分配到这10个服务器上,每个数据库访问拥有1000个用户。这看起来是个不错的改善性能的方式——但是有以下几点不足:

  存储利用:与分散到每个节点上的数据同样的拷贝。

  数据分散:你如何保证所有的节点都同步具有同一个数据的拷贝?

  数据管理语言同步:你如何保证所有节点上的变化都保持同步?

  SQL Server 2005将会提供一个peer-to-peer (P2P)的复制模式,专为在多个服务器上分散统一的数据集合所用,并且保持他们的同步性。一个节点的更新将会复制到拓扑结构内所有其他节点中:当一个节点重新在线,它会以P2P的模式与其他节点中发生的更新同步。这种解决方案的设计目标是将位于不同地理位置的服务器的规模按照比例缩小。

  然而,在大多数的横向分割实现过程中,每个服务器或数据库都包含数据的子集。在SQL Server 7之前的版本上,这些实现是在应用程序的级别上完成的,在那里调用应用程序根据查询参数(SARG)来决定访问那个表。如果表在同一个数据库内分割,T-SQL逻辑就需要负责分割,这样每个正确的分割都可以参考或者更新。如果你创建了一个视图来表示一个完整的结果集,所有的潜在的基本表都需要参考到。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章