zoukankan      html  css  js  c++  java
  • SqlServer 分库分表

    分库 

    垂直切分(纵向切分)

    比如说一个电商平台,里面包含了订单系统,物流系统,仓储系统等,原先是用的同一个数据库,现在我们可以设计成每个系统都有自己的数据库服务器,不公用同一个数据库,不同系统之间的数据可以通过API调用来,这样压力就会小很多。这可以理解为垂直切分。

    水平切分(横向切分)

     比如订单系统中数据量很大,导致了数据库的性能问题,我们可以对订单系统数据库进行水平切分。水平分库之后数据库的结构是完全一致的,只是存储的数据不一样而已,比如说一个存储去年的,一个存储今年,,,,可以按照时间来进行切分,如果业务要求查询的数据中一部分在去年,一部分在今年,那就需要程序员在程序中进行处理了。当然实际情况根据实际业务,这里只是做一个假设。还可以按照区域进行切分,比如外卖平台,A数据库存储A区域的数据,B数据库存储B区域的数据。

     还可以简单总结一下就是垂直切分就是把不同的表组合成不同的库,水平分库就是将相同的表分成不同的库

    分表

    垂直分表(纵向分表)

    某些字段的数据不常用,但是又包含在这张表中,而且这些字段很损耗性能(因为存在IO压力);就可以进行垂直切分,一个表存储这个很损耗性能或者不常用的字段,其他比较常用的字段存储在另一个表,两个表可以直接通过两个主键关联(建议使用Guid作为主键);也可以通过主外键关系来关联!

    水平分表

    比如说一个订单表包含的数据量非常大;有一些数据(两年前的订单数据)也存储在这张表; 就可以水平切分,多个表的表结构是完全一致,但是数据不一样,每个表记录不同时间段的数据(这是以时间为维度进行切分的);比如房产系统(外卖系统),这都可以以区域为维度来进行切分,比如不同的表存储不同区域的数据;还会可以通过指定的算法来进行表的水品切分--把数据均匀分配,慎用。

  • 相关阅读:
    [Python Study Notes]进程信息(丁丁软件监控进程,http-post)
    [Python Study Notes]cpu信息
    [Python Study Notes]电池信息
    [Python Study Notes]内存信息
    [Python Study Notes]磁盘信息和IO性能
    [Python Study Notes]计算cpu使用率v0.1
    [Python Study Notes]计算cpu使用率
    [Python Study Notes]psutil模块
    [解决问题] E: 无法获得锁 /var/lib/dpkg/lock
    [Python Study Notes] python面试题总结
  • 原文地址:https://www.cnblogs.com/anjingdian/p/15366285.html
Copyright © 2011-2022 走看看