sql server几种读写分离方案的比较

在生产环境中我们经常会遇到这种情况:

前端的oltp业务很繁忙,但是需要对这些运营数据进行olap,为了不影响前端正常业务,所以需要将数据库进行读写分离。

这里我将几种可以用来进行读写分离的方案总结一下,这里并不考虑数据库是否高可用,只针对读写分离场景,方案本身并无优劣可言,只看是否适合业务使用场景,所以只把几个方案的特点罗列出来,遇到具体的问题时按自己需求和环境综合考虑后再进行取舍

 

读写分离方案 实时同步 副本数据是否直接可读 副本数 最小粒度 副本建立索引 环境 缺点
镜像 否(需要开启快照,只读) 1 域/非域(使用证书)

在高安全模式下对主库

性能有一定影响

log shipping 是(只读) N UNC方式可访问  副本库在做resotre时会断开已连接用户连接/可能影响常规日志备份
发布订阅 是(读写,但写可能会产生数据不一致) N 表(查询) 域/非域 在主库上有大量DML操作时,对分发服务器会有一定影响,且订阅数据库可能有数据同步延迟
always on 是(只读) 4(sql 2012)
8(sql 2014)
非域环境无法使用
posted @   活力大疯子  阅读(20163)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示