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

一文读懂Sql Server读写分离和分库分表

读写分离
  1. 顾名思义 就是读和写分离 在不同数据库操作 减免操作之间影响 提升性能
    读写分离通过将数据库的读操作(SELECT)和写操作(INSERT/UPDATE/DELETE)分发到不同的物理实例上,从多个维度优化资源利用和并发处理能力,从而显著提升整体性能。
  2. 思路:主从同步 发布订阅 主库应对写 从库应对 读 可扩展从库数量
  3. 适用场景:读多写少,对数据实时性要求较高的业务(如电商商品查询)
  4. 实现建议:
    优先在读多写少​(读写比>4:1)的场景中使用读写分离。
    通过数据库中间件(如ShardingSphere)自动路由读写请求,减少代码侵入性。
    监控主从延迟(SHOW SLAVE STATUS),设置阈值告警(如延迟>1秒触发预警)
  5. 注意事项与局限性
    数据延迟问题:
    异步复制可能导致从库数据滞后,业务需容忍短暂不一致性。
    解决方案:对一致性敏感的读操作仍路由到主库。
    写能力瓶颈:
    读写分离仅扩展读性能,写能力仍受限于主库。
    解决方案:结合分库分表分散写压力。
    成本增加:
    需额外硬件和维护从库,成本上升。
    解决方案:云数据库(如 Azure SQL)按需扩展从库
读写分离如何提升性能
  1. 负载分离:减少资源争用 减少锁的使用
    问题场景
    在单库架构中,读操作(共享锁,S 锁)和写操作(排他锁,X 锁)会竞争同一数据库的资源:
    锁冲突:写操作需要独占资源(X 锁),会阻塞读操作(S 锁)和其他写操作。
    CPU/IO 瓶颈:混合读写负载可能导致 CPU 和磁盘 IO 过载。
    读写分离的优化
    主库(Primary):仅处理写操作,避免读操作占用资源。
    从库(Secondary):通过复制技术(如 AlwaysOn、事务复制)同步主库数据,独立处理读操作。
    效果:
    写操作无需等待读操作释放锁,减少锁冲突。
    读操作不再占用主库的 CPU 和 IO 资源,降低主库压力

  2. <

相关文章:

  • 鼠标在客户区内按下左键和双击右键
  • 光谱范围与颜色感知的关系
  • Spring学习笔记05——Spring Boot的文件结构2(POJO类)
  • 基于 PHP 内置类及函数的免杀 WebShell
  • 【MySQL】mysql日志文件
  • OpenCV图像拼接(3)图像拼接类cv::detail::MultiBandBlender
  • 前端学习笔记--CSS
  • 【机器学习】线性回归和逻辑回归的区别在哪?
  • 【零基础JavaScript入门 | Day7】三大交互案例深度解析|从DOM操作到组件化开发
  • Netty——I/O 线程模型
  • 最长连续子序列和的所含元素 -- Kadane算法拓展
  • 【C++网络编程】第8篇:协议设计与序列化(Protobuf、FlatBuffers)
  • 流式ETL配置指南:从MySQL到Elasticsearch的实时数据同步
  • 【设计模式】工厂模式
  • 信息学奥赛一本通 1514:【例 2】最大半连通子图 | 洛谷 P2272 [ZJOI2007] 最大半连通子图
  • vue watch数据监听
  • R语言——字符串
  • RTSP/Onvif安防监控平台EasyNVR抓包命令tcpdump使用不了,该如何解决?
  • 模型搭建与复现
  • 【Linux网络-多路转接select】
  • 宁波高新区网站制作/seo 资料包怎么获得
  • 常州网站关键词推广/网站建设费用多少钱
  • 昆明网络推广昆明网站建设昆明昆明/时空seo助手
  • app界面设计欣赏/上海外贸seo公司
  • 不良网站正能量进入窗口/百度开户怎么开
  • 怎样用FW做网站的首页/成功营销案例100例