当前位置: 首页 > news >正文

数据持久化层--查询分离

1. 业务场景

1)查询慢。当时工单数据库里面有1000万左右的客服工单时,每次查询时需要关联其他近10个表,一次查询平均花费13秒左右。
2)打开工单慢。工单打开以后需要调用多个接口,分别将用户信息、订单信息以及其他客服创建的单据信息列出来(如退款、赔偿、充值、投诉等)。打开工单详情页需要近5秒。

之前针对于大量数据的问题使用过冷热分离的方案,但是进一步调研以后才发现,还有个工单类型转换的场景,即原本客户只是咨询,沟通中发现了问题,然后就转投诉了,但是系统设计的功能中,是不能修改工单类型的。也就是说,有些客服工单表面上只是咨询,其实是投诉。

所以考虑查询分离:即将更新的数据放在主数据库里,而查询的数据放在另外一个专门针对搜索的存储系统里。

2. 查询分离简介

何为查询分离?
查询分离即每次写数据时保存一份数据到其他的存储系统里,用户查询数据时直接从中获取数据。
在这里插入图片描述

何种场景下使用查询分离?

1)数据量大:比如单个表的行数有上千万,当然,如果几百万就出现查询慢的问题,也可以考虑使用。2)查询数据的响应效率很低:因为表数据量大,或者关联查询太过复杂,导致查询很慢的情况。
3)所有写数据请求的响应效率尚可:虽然查询慢,但是写操作

http://www.lryc.cn/news/40509.html

相关文章:

  • 一文读懂Js中的this指向
  • 零费用、零学习成本,用户快速可自定义json格式
  • 2023年全国最新高校辅导员精选真题及答案25
  • 二、数据结构-线性表
  • CGAL 点云上采样
  • 阿里云短信验证码实战
  • Android APP隐私合规检测工具Camille使用
  • 手把手学会DFS (递归入门)
  • 由《三体》太阳文明末日场景想到的……
  • es6的Proxy与Reflect
  • Linux环境部署vue项目 + nginx访问(包含nginx配置简介)
  • 到底什么是跨域,如何解决跨域(常见的几种跨域解决方案)?
  • pm3包1.4版本发布----一个用于3组倾向性评分的R包
  • 没有关系的话,那就去建立关系吧
  • Vue项目
  • 【webrtc】ICE 到VCMPacket的视频内存分配
  • 进阶C语言——指针(二)【题目练习】
  • Ajax简介
  • ChatGPT 4 测试 两数比较大小问题。
  • SSM-CRUD整合视频教程:Spring、SpringMVC、MyBatis、bootstrap、pagehelper、JSR303后端校验
  • Linux常用命令——基于Ubuntu22.04
  • Sentinel
  • 再也不想去字节跳动面试了,6年测开面试遭到这样打击.....
  • 【深度解刨C语言】符号篇(全)
  • VS Code 将推出更多 AI 功能给 Java 开发者
  • 关于利用FFT分析时域信号幅相的思考与验证
  • 基于java中的Springboot框架实现餐厅点餐系统展示
  • 案例07-在线人员列表逻辑混乱
  • Java集合框架
  • 奇异值分解(SVD)原理与在降维中的应用