首页 > 其他分享 >架构杂记

架构杂记

时间:2023-01-01 14:11:23浏览次数:32  
标签:缓存 架构 生成 分库 杂记 分表 hash Id

  1. 数据库设计的时候,有些时候可考虑横向分表,把不常用,占用空间多,并且这张表的数据可能超过千万级别,这种情况吧一个表分成基础表和拓展表,可以明显的提高数据检索效率,Btree 的结构决定每行的数据越少,每页能放的行数越多,数据结构就越矮胖,查询效率就越高

  2. 纵向分表也是一种常见的策略,用类似的也可以分库
    比如通过Id的访问拆分
    比如通过hash模运算拆分
    比如通过一致性哈希算法拆分

  3. 读写分离也是常见提高数据库查询能力的方式

  4. 浏览器缓存静态资源是一种重要的缓存方式,用户端的资源相对来说不容易有瓶颈,http相应头expires 和 cache-control 是设置缓存的重要参数

    expires 设置到期时间点
    cache-control 设置多久以后过期

  5. 互联网应用用户分布在全国各地,需要CDN网络缓存资源加速,如果企业内部用的我们可以考虑ngxin缓存静态资源

  6. 考虑缓存的情况应该是不常变化,高频率使用的数据,并且缓存会一定程度的带来数据不一致,这是使用缓存需要考虑的一个点

  7. 通过id范围分库分表,会导致尾部热点问题

    分表为例:预估10亿数据,分10 份,0-1亿放表1,1-2亿放表2,一次类推。必定有一个统一的地方维持Id生成,正常Id应该是递增的,如果我们写到1.5亿的时候,表2所在的数据库一般就压力就比较大。要解决这个问题我们可以轮询的生成10个区间的递增数据,比如第一次生成1,第二次生成1亿零1,第三次生成两亿01,这样能解决热点问题,或者直接是不通过范围分配,直接通过hash来分配储存位置,hash模或者hash环

  8. 分库分表的情况雪花算法之类的与生成Id,比自增Id更加适合。

标签:缓存,架构,生成,分库,杂记,分表,hash,Id
From: https://www.cnblogs.com/cxygg/p/17018037.html

相关文章

  • informer 架构
    Informer架构上图是整个client-go的完整架构图,或者说是我们要去实现一个自定义的控制器的一个整体流程,其中黄色图标是开发者需要自行开发的部分,而其它的部分是client-......
  • nacos注册中心单节点ap架构源码解析
    一、注册流程单nacos节点流程图如下:流程图可以知,Nacos注册流程包括客户端的服务注册、服务实例列表拉取、定时心跳任务;以及服务端的定时检查服务实例任务、服务实例更新......
  • autosar分层架构
    AUTOSAR分层一、应用层:通过端口(PORT)交互,每个SWC可以包含一个或者多个实体(RunnableEntity),可由RTE事件触发。原子SWC包括应用软件SWC,传感器SWC,ECU抽象软件SWC等......
  • .NET 云原生架构师训练营(基于 OP Storming 和 Actor 的大型分布式架构二)--学习笔记
    目录为什么我们用OrleansDaprVSOrleansActor模型Orleans的核心概念结合OPStorming的实践结合OPStorming的实践业务模型设计模型代码实现业务模型我们可以把关键......
  • sso单点登录系统架构
    sso单点登录系统架构一、单点登录系统单点登录(sso系统)主要用于解决公司内多个系统间的用户登录问题。在一个多系统共存的环境下,实现用户在一个系统登录后,访问其他系统......
  • 大数据系统架构
           ......
  • Linux运维架构师、SRE技术图谱
    Web服务器:apache、tomcat、nginx、lighttpd、varnish监控:nagios、ganglia、cacti、zabbix、Prometheus自动部署:ansible、salt、puppet、cobbler配置管理:puppet......
  • Azure DevOps 的架构窥探
    工作的缘故,接触TFS(TeamFoundationServer)挺多的,现在改名为AzureDevOps,分为可私有化部署版本AzureDevOpsServer,简称ADS,以及SAAS版本AzureDevOpsServices。......
  • 架构中实时引擎与离线渲染的主要优势
    对于任何从事建筑和AEC行业的人来说,评估使用像Unity这样的实时引擎与传统离线渲染引擎相比的所有优势都是必不可少的。考虑使用Unity的建筑或室内设计行业的可视化,以及通......
  • 超融合架构
    超融合基础架构(Hyper-ConvergedInfrastructure)是一种集成了虚拟计算资源和存储设备的信息基础架构。在这样的架构环境中,同一套单元设备中不但具备了计算、网络......