B端C端进行分离:

单场景业务应用表:业务表进行分离

对于B端系统来说,如发钱系统,B端需要存储 订单id、是否发放成功、通知状态等信息,有可能还会有发放失败,审核驳回等无用数据记录,但是对于C端用户界面来说往往比较简单、可能就是需要 用户、时间、金钱等信息,数据量少的时候在一张数据表存储是可以的,但是数据量越来越大的时候会有很多无用信息,同时C端查询也会受到影响,影响具体如扫描字段过多,无用字段过多等。

依赖多个数据表进行大数据量扫表:离线数据和在线数据进行拆库隔离

为什么需要进行拆库隔离:

  1. 大量的扫表查询影响buffer pool 的缓存命中率,影响C端用户的查询

    依赖多张数据表进行扫表查询 select * from A where id >= a and id <= a+3000;

    大量的扫表查询对MySQL 的 buffer pool 也会有影响,虽然 MySQL 对 LRU 进行了改进,新扫表写入的数据放到 old 区域,如果在LRU 链表中存在的时间超过1s中才会移动到链表的头部,也就是young 区域,这样保证了 buffer pool 的缓存命中率,不会导致热的数据页也淘汰掉。

  2. 离线HIVE表大批量的数据写入也会影响MySQL的性能,然后影响到C端查询的性能

任务依赖设计:

type,cdate,status 存储每个任务当天是否计算完成,如果依赖那个任务完成,需要检验它的状态是否完成

隔离稳定和变化多的模块:

稳定的模块如怎么加钱,减钱,怎么计算,计算流程是改动比较少的

但是对于运营来说,打折、扣减 这些是变化比较多的,隔离开经常变化和不经常变化的模块,让系统迭代更加稳定

类比到广告系统中:检索广告逻辑是比较通用的,但是客户端的样式是各种各样的,所以将检索模块和样式迭代隔离开,检索逻辑只返回 广告单元,然后再根据广告单元召回对应的样式进行返回。同时后续迭代样式,只改动样式服务就行,核心的检索逻辑不会进行变动。

模块化服务:一个服务干一件事情

参考文章:MySQL 实战 45 讲(我查这么多数据,会不会把数据库内存打爆?)

总结下参与以及看到的一些好的业务设计的 pattern的更多相关文章

  1. Django学习——Django测试环境搭建、单表查询关键字、神奇的双下划线查询(范围查询)、图书管理系统表设计、外键字段操作、跨表查询理论、基于对象的跨表查询、基于双下划线的跨表查询

    Django测试环境搭建 ps: 1.pycharm连接数据库都需要提前下载对应的驱动 2.自带的sqlite3对日期格式数据不敏感 如果后续业务需要使用日期辅助筛选数据那么不推荐使用sqlite3 ...

  2. Microsoft Visio绘图

    2000年微软公司收购同名公司后,Visio成为微软公司的产品.Microsoft Visio是Windows 操作系统下运行的流程图软件,它现在是Microsoft Office软件的一个部分.Vi ...

  3. WPF老矣,尚能饭否——且说说WPF今生未来(下):安心

    在前面的上.中篇中,我们已经可以看到园子里朋友的点评“后山见! WPF就比winform好! 激情对决”.看到大家热情洋溢的点评,做技术的我也很受感动.老实说,如何在本文收笔--WPF系列文章,我很紧 ...

  4. 【原创】窥视懒人的秘密---android下拉刷新开启手势的新纪元

    小飒的成长史原创作品:窥视懒人的秘密---android下拉刷新开启手势的新纪元转载请注明出处 **************************************************** ...

  5. 详细讲解 A/B 测试关键步骤,快来检查下还有哪些疏漏的知识点

    作为一种对照实验方法,A/B 测试通过比较两个 (或多个) 不同版本之间的差异来验证假设是否正确.该方法将特定测试组从实验其余部分中独立出来,从而得出可靠结果.在被测人不知情且测试场景真实的情况下,A ...

  6. 24个 HTML5 & CSS3 下拉菜单效果及制作教程

    下拉菜单是一个很常见的效果,在网站设计中被广泛使用.通过使用下拉菜单,设计者不仅可以在网站设计中营造出色的视觉吸引力,但也可以为网站提供了一个有效的导航方案.使用 HTML5 和 CSS3 可以更容易 ...

  7. 10个优秀的 HTML5 & CSS3 下拉菜单制作教程

    下拉菜单是一个很常见的效果,在网站设计中被广泛使用.通过使用下拉菜单,设计者不仅可以在网站设计中营造出色的视觉吸引力,但也可以为网站提供了一个有效的导航方案.使用 HTML5 和 CSS3 可以更容易 ...

  8. 推荐10个 CSS3 制作的创意下拉菜单效果

    下拉菜单是一个很常见的效果,在网站设计中被广泛使用.通过使用下拉菜单,设计者不仅可以在网站设计中营造出色的视觉吸引力,但也可以为网站提供了一个有效的导航方案.使用 HTML5 和 CSS3 可以更容易 ...

  9. 11个优秀的HTML5 & CSS3下拉菜单制作教程

    下拉菜单是一个很常见的效果,在网站设计中被广泛使用.通过使用下拉菜单,设计者不仅可以在网站设计中营造出色的视觉吸引力,但也可以为网站提供了一个有效的导航方案.使用HTML5和CSS3可以更容易创造视觉 ...

  10. Windows下Memcached在.Net程序中的实际运用(从Memcached客户端Enyim的库的编译到实际项目运用)

    1.一点基础概念 2.获取EnyimMemcached客户端的源代码并编译出动态库 3.Memcached的服务器安装(windows server) 4.在web项目中实战 一.基础概念 memca ...

随机推荐

  1. Win环境下的批处理命令和JScript脚本结合使用笔记

    最近工作有接触到.bat 批处理命令,在Win环境下编写的时候基于以前的编码习惯,觉得批处理语法可读性较差,于是学习了解了一下结合JScript的用法,特此记录. 什么是JScript JScript ...

  2. sql 使用with 递归

     ---前提:有上下级关系的关系表  ---示例:组织架构表 DECLARE @orgId NVARCHAR(20)='0001'; --向下递归,查询@orgId 下的所有结点...包括儿子-孙子节 ...

  3. udl(Universal Data Link)通用数据连接文件

    新建文本文档 更改后缀名为.udl(注意小点) 然后打开运行 配置并测试 改回后缀名.txt(有个小点哦) 打开就是了

  4. Codeforces Round 970 (Div. 3)

    A. Sakurako's Exam 分类讨论即可,当a为奇数,无法消去1,或者a==0且b为奇数时,无法消去2 #include <bits/stdc++.h> using namesp ...

  5. .NET周刊【4月第1期 2025-04-06】

    国内文章 35岁程序员的中年求职记:四次碰壁后的深度反思 https://www.cnblogs.com/minily/p/18803259 文章探讨程序员的35岁危机,指出这一问题确实存在,但也有其 ...

  6. .net6 api添加接口注释

    参照: .NET 6 Swagger添加xml注释 - 凡尘一叶~ - 博客园 (cnblogs.com)[这个比较准] .net core的Swagger接口文档使用教程(一):Swashbuckl ...

  7. 【漏洞扫描】Nuclei v3.4.1 下载方法(附快速下载链接)

    简介 Nuclei v3.4.1是一款强大的漏洞扫描器,并且拥有社区维护的海量漏洞POC,工具质量十分的高.Nuclei 用于基于模板跨目标发送请求,从而实现零误报并提供对大量主机的快速扫描.Nucl ...

  8. Vue 3中的ref和template refs详解(含Vue2迁移到Vue3方法)

    Vue 3中的ref和template refs详解 在Vue 3中,ref和模板引用(template refs)是两个相关但不同的概念,它们在组合式API(Composition API)中扮演着 ...

  9. Python3 + selenium 获取疫情中高风险区数据

    背景: 需要动态将疫情风险区数据和区域业务动作想结合, 赋能销售业务, 内部使用非商用哈 环境: Python3 + selenium 自动化测试软件中 Chrome 驱动 exe 文件 输出: 以 ...

  10. c++并发编程实战-第2章 线程管控

    线程的基本管控 每个应用程序都至少拥有一个线程,即运行main函数的线程,称为主线程,它由c++运行时系统启动.我们可以在软件运行中产生其他线程,它们以指定的函数作为入口函数.当main函数返回后,程 ...