搜索
首页数据库mysql教程如何用SQL Server将数据库横向扩展

一般人们会选择纵向扩展(scale up)SQL Server数据库,而非横向扩展(scale out)。纵向扩展很容易:增加硬件、处理能力、内存、磁盘和提高网络速度。其原理就是仍然在一台服务器上运行数据库,但是增加了服务器的处理能力和资源。这种方法很昂贵,但是非常简单

  一般人们会选择纵向扩展(scale up)SQL Server数据库,而非横向扩展(scale out)。纵向扩展很容易:增加硬件、处理能力、内存、磁盘和提高网络速度。其原理就是仍然在一台服务器上运行数据库,但是增加了服务器的处理能力和资源。这种方法很昂贵,但是非常简单直接。

  采用云技术

  有时候,最简单的方法就是将问题交由其他人处理。微软的Windows Azure云服务包含一个基于云的SQL Server版本SQL Azure.这在技术上并非真正意义的横向扩展,因为它是一种无限纵向扩展方法。所以,转移到Azure并不需要对您的应用程序进行大改动。实际上,您只需要将应用程序迁移到SQL Azure,然后支付存储、处理和数据传输费用。这些都是收费服务,但是您不需要再担心扩展问题。

  复制

  SQL Server原生复制是一种支持横向扩展的解决方案,与数据库的创建和使用方式有关。您只需要在多台服务器上复制多个数据库副本,然后将不同的用户指向各台服务器。这种方法通常最适合支持地理位置分散的用户,如亚洲办公室的用户使用服务器1,而北美办公室的用户则使用服务器2.每一台服务器都拥有完整的数据副本,并且会复制伙伴服务器的所有修改。

  这种方法不支持自动负载均衡,并且最适合用在用户固定只使用一部分数据的情况。换而言之,如果亚洲用户只需要编辑与他们办公室相关的数据--例如,主要是亚洲客户的信息,那么复制能够保证其他数据库副本也包含这些记录的副本。如果所有用户都需要编辑完整的数据集,那么复制就变得有一些复杂,因为SQL Server必须在支持用户的同时,编辑位于不同服务器的同一个数据。

  SQL Server的合并复制能够处理这种冲突,但是您必须进行一些自定义合并编程,这意味着您的开发人员必须开发一些算法,确定用户并发访问数据时谁获取编辑权限。客户应用程序也需要增加编程;使它们不仅向数据库提交数据修改,,也要循环检查这些修改是否被其他并发用户重写。用户也需要重新培训,因为客户端应用程序可能会提示:"您正在编程的数据已经发生变化。您需要重新检查,确定您的编辑是否仍然有效。"

  联合数据库

  另一个重要的横向扩展方法是联合。通过这种方法,您可以将数据库划分到多台服务器上。垂直分割将同一个表的不同行保存到不同的服务器上。同时,地理分区是最常用的方法:将所有亚洲数据记录保存在一台服务器上,而所有欧洲数据则保存在另一台服务器上。这种方法不同于整体复制:每一个位置的服务器都不具备完整的数据库,而只拥有该位置的数据。通过实现一种SQL Server分布式分区视图而形成完整的表,用户就可以浏览一个"联合"或组合的数据视图。水平分割则将表的字段保存在不同的服务器上,因此各台服务器一起协作构成组合的表。

  这些数据库的创建并不简单,其中涉及一种整体操作。您需要掌握关于数据访问和使用的详细信息,才能够实现正确的部署。此外,您还需要一位SQL Server数据库架构师,他应该全面理解这些技术,分析您的业务情况,并且能够正确地创建这些组件。

  在一些情况中,实现这种横向扩展对客户端应用程序的改动很小。对于本身在设计上大量使用视图和存储过程进行数据访问的应用程序,更是如此。因为这些元素只是是在后台抽象,在客户端上不会发生变化。但是,这些应用程序并不常见;通常,实现横向扩展都需要修改客户端程序,使客户端与后台结构分离。

  横向扩展并不简单

  毫无疑问,实现SQL Server横向扩展非常复杂--这也是Azure等云数据库系统流行的原因之一。此外,有一些第三方供应商能够帮助实现横向扩展技术,而不需要完全依赖SQL Server的原生特性。您需要自己下功夫了解这些方法,理解数据访问和使用方法,这样才能够选择最符合您要求的方法。

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
MySQL:初学者的基本技能MySQL:初学者的基本技能Apr 18, 2025 am 12:24 AM

MySQL适合初学者学习数据库技能。1.安装MySQL服务器和客户端工具。2.理解基本SQL查询,如SELECT。3.掌握数据操作:创建表、插入、更新、删除数据。4.学习高级技巧:子查询和窗口函数。5.调试和优化:检查语法、使用索引、避免SELECT*,并使用LIMIT。

MySQL:结构化数据和关系数据库MySQL:结构化数据和关系数据库Apr 18, 2025 am 12:22 AM

MySQL通过表结构和SQL查询高效管理结构化数据,并通过外键实现表间关系。1.创建表时定义数据格式和类型。2.使用外键建立表间关系。3.通过索引和查询优化提高性能。4.定期备份和监控数据库确保数据安全和性能优化。

MySQL:解释的关键功能和功能MySQL:解释的关键功能和功能Apr 18, 2025 am 12:17 AM

MySQL是一个开源的关系型数据库管理系统,广泛应用于Web开发。它的关键特性包括:1.支持多种存储引擎,如InnoDB和MyISAM,适用于不同场景;2.提供主从复制功能,利于负载均衡和数据备份;3.通过查询优化和索引使用提高查询效率。

SQL的目的:与MySQL数据库进行交互SQL的目的:与MySQL数据库进行交互Apr 18, 2025 am 12:12 AM

SQL用于与MySQL数据库交互,实现数据的增、删、改、查及数据库设计。1)SQL通过SELECT、INSERT、UPDATE、DELETE语句进行数据操作;2)使用CREATE、ALTER、DROP语句进行数据库设计和管理;3)复杂查询和数据分析通过SQL实现,提升业务决策效率。

初学者的MySQL:开始数据库管理初学者的MySQL:开始数据库管理Apr 18, 2025 am 12:10 AM

MySQL的基本操作包括创建数据库、表格,及使用SQL进行数据的CRUD操作。1.创建数据库:CREATEDATABASEmy_first_db;2.创建表格:CREATETABLEbooks(idINTAUTO_INCREMENTPRIMARYKEY,titleVARCHAR(100)NOTNULL,authorVARCHAR(100)NOTNULL,published_yearINT);3.插入数据:INSERTINTObooks(title,author,published_year)VA

MySQL的角色:Web应用程序中的数据库MySQL的角色:Web应用程序中的数据库Apr 17, 2025 am 12:23 AM

MySQL在Web应用中的主要作用是存储和管理数据。1.MySQL高效处理用户信息、产品目录和交易记录等数据。2.通过SQL查询,开发者能从数据库提取信息生成动态内容。3.MySQL基于客户端-服务器模型工作,确保查询速度可接受。

mysql:构建您的第一个数据库mysql:构建您的第一个数据库Apr 17, 2025 am 12:22 AM

构建MySQL数据库的步骤包括:1.创建数据库和表,2.插入数据,3.进行查询。首先,使用CREATEDATABASE和CREATETABLE语句创建数据库和表,然后用INSERTINTO语句插入数据,最后用SELECT语句查询数据。

MySQL:一种对数据存储的初学者友好方法MySQL:一种对数据存储的初学者友好方法Apr 17, 2025 am 12:21 AM

MySQL适合初学者,因为它易用且功能强大。1.MySQL是关系型数据库,使用SQL进行CRUD操作。2.安装简单,需配置root用户密码。3.使用INSERT、UPDATE、DELETE、SELECT进行数据操作。4.复杂查询可使用ORDERBY、WHERE和JOIN。5.调试需检查语法,使用EXPLAIN分析查询。6.优化建议包括使用索引、选择合适数据类型和良好编程习惯。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 个月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
1 个月前By尊渡假赌尊渡假赌尊渡假赌
威尔R.E.P.O.有交叉游戏吗?
1 个月前By尊渡假赌尊渡假赌尊渡假赌

热工具

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具