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. Pydantic递归模型深度校验36计:从无限嵌套到亿级数据的优化法则

    title: Pydantic递归模型深度校验36计:从无限嵌套到亿级数据的优化法则 date: 2025/3/26 updated: 2025/3/26 author: cmdragon excer ...

  2. MySQL-对Change Buffer的理解

    Change Buffer的处理过程 对非唯一的普通索引的新增或更新操作,如果索引B+树的需要新增或更新的数据页不在内存中,则直接更新change buffer,等到后面需要使用这个数据页(真正读到内 ...

  3. 一个基于 .NET 开源免费的异地组网和内网穿透工具

    前言 今天大姚给大家分享一个基于 .NET 开源免费的异地组网和内网穿透工具:linker. 工具介绍 linker是一个基于 .NET8 开源免费(GPL-2.0 license)的异地组网和内网穿 ...

  4. SVN统计时间段内代码修改行数

    1.本地安装svn客户端(方法自行百度) 注:安装时记得勾选命令行工具 若原安装未勾选,可再次启动安装文件: 选中Next即可: 环境变量记得配置svn路径(bin)(方法自行百度) cmd运行命令 ...

  5. 记一次 .NET某固高运动卡测试 卡慢分析

    一:背景 1. 讲故事 年前有位朋友找到我,说他们的程序会偶发性卡慢 10s 钟,在某些组合下会正常,某些组合下就会出现问题,解释不了其中的原因,让我帮忙看下怎么回事?截图如下: private vo ...

  6. Java 中的字符串常量池和运行时常量池

    Java 中的字符串常量池和运行时常量池 1. 字符串常量池(String Constant Pool) 定义 字符串常量池是 JVM 内存中专门用于存储字符串字面量和通过 intern() 方法加入 ...

  7. 凯亚物联网平台如何通过MQTT网络组件接入设备

    一.概述 有人提议我用kestrel代替Dotnetty ,那是不可能的, 物联网平台MQTT,rtmp,rtsp,httpflv,tcp,udp,rpc 都是基于dotnetty实现,压测没有问题, ...

  8. SpringBoot内容协商(Content Negotiation)

    内容协商 在 HTTP 协议中,内容协商是一种机制,用于为同一 URI 提供资源不同的表示形式,以帮助用户代理指定最适合用户的表示形式(例如,哪种文档语言.哪种图片格式或者哪种内容编码).[^1] S ...

  9. SQL 日常练习(十五)

    这两周真的是被客户搞怕了, 我一个数据分析师, 干着比程序员还复杂的活, 拿着文员的工资, 看这我每天下班的打卡时间, 感觉我一点求生欲都没有,真的不知道图啥. 快速理解业务, 马上建数据库表, 写后 ...

  10. 【转载】coroutine 与 goroutine 区别

    如下原文转载自C语言中文网 C#.Lua.Python 语言都支持 coroutine 特性.coroutine 与 goroutine 在名字上类似,都可以将函数或者语句在独立的环境中运行,但是它们 ...