SqlServer 分库分表
2022/3/2 2:23:33
本文主要是介绍SqlServer 分库分表,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
分库
垂直切分(纵向切分)
比如说一个电商平台,里面包含了订单系统,物流系统,仓储系统等,原先是用的同一个数据库,现在我们可以设计成每个系统都有自己的数据库服务器,不公用同一个数据库,不同系统之间的数据可以通过API调用来,这样压力就会小很多。这可以理解为垂直切分。
水平切分(横向切分)
比如订单系统中数据量很大,导致了数据库的性能问题,我们可以对订单系统数据库进行水平切分。水平分库之后数据库的结构是完全一致的,只是存储的数据不一样而已,比如说一个存储去年的,一个存储今年,,,,可以按照时间来进行切分,如果业务要求查询的数据中一部分在去年,一部分在今年,那就需要程序员在程序中进行处理了。当然实际情况根据实际业务,这里只是做一个假设。还可以按照区域进行切分,比如外卖平台,A数据库存储A区域的数据,B数据库存储B区域的数据。
还可以简单总结一下就是垂直切分就是把不同的表组合成不同的库,水平分库就是将相同的表分成不同的库
分表
垂直分表(纵向分表)
某些字段的数据不常用,但是又包含在这张表中,而且这些字段很损耗性能(因为存在IO压力);就可以进行垂直切分,一个表存储这个很损耗性能或者不常用的字段,其他比较常用的字段存储在另一个表,两个表可以直接通过两个主键关联(建议使用Guid作为主键);也可以通过主外键关系来关联!
水平分表
比如说一个订单表包含的数据量非常大;有一些数据(两年前的订单数据)也存储在这张表; 就可以水平切分,多个表的表结构是完全一致,但是数据不一样,每个表记录不同时间段的数据(这是以时间为维度进行切分的);比如房产系统(外卖系统),这都可以以区域为维度来进行切分,比如不同的表存储不同区域的数据;还会可以通过指定的算法来进行表的水品切分--把数据均匀分配,慎用。
这篇关于SqlServer 分库分表的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-01-08Docker下的SqlServer发布订阅启用
- 2023-06-05Docker安装MS SQL Server并使用Navicat远程连接
- 2023-05-25深入浅出 SQL Server CDC 数据同步
- 2023-05-12通过空间占用和执行计划了解SQL Server的行存储索引
- 2023-04-24以SQLserver为例的Dapper详细讲解
- 2022-11-30SQL server高级函数查询
- 2022-11-26SQL SERVER数据库服务器CPU不能全部利用原因分析
- 2022-11-21SQL Server 时间算差值/常用函数
- 2022-11-20调试Archery连接SQL Server提示驱动错误
- 2022-10-22SQL Server 完整、差异备份+完整、差异还原(详细讲解,规避错误)