数据库读写分离,用哪种方式好些呢?

soamu 2018-12-19 01:59:55
我用发布订阅的方式做了,但是延迟比较严重,用镜像呢,又没法读写镜像服务器,还是分不开。。 还有,有没有办法做到多台写数据的服务器呢?
...全文
574 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
soamu 2018-12-20
  • 打赏
  • 举报
回复
引用 6 楼 吉普赛的歌 的回复:
https://yq.aliyun.com/articles/80136 阿里云搭建 alwayson 的文档还是挺多的, 你自己试着去做下。 写的压力大, 一般只是个别表吧。 一天的数据量有多少? 另外, 写压力大的表, 一定要保持小表, 多余的数据应该每天用定时任务(sql 作业是最方便的)归档到历史表中去。 表小了, 读写的冲突会少一些, 效率更高。
我们是做电商的,对于订单表及订单明细表更新操作会比较频繁。如果分成很多小表,读取的话可就麻烦了。尤其根据单号或手机号查询。
吉普赛的歌 2018-12-20
  • 打赏
  • 举报
回复
引用 9 楼 soamu 的回复:
[quote=引用 6 楼 吉普赛的歌 的回复:] https://yq.aliyun.com/articles/80136 阿里云搭建 alwayson 的文档还是挺多的, 你自己试着去做下。 写的压力大, 一般只是个别表吧。 一天的数据量有多少? 另外, 写压力大的表, 一定要保持小表, 多余的数据应该每天用定时任务(sql 作业是最方便的)归档到历史表中去。 表小了, 读写的冲突会少一些, 效率更高。
我们是做电商的,对于订单表及订单明细表更新操作会比较频繁。如果分成很多小表,读取的话可就麻烦了。尤其根据单号或手机号查询。[/quote] 并不麻烦, 读取时用视图 union 当前表和历史表就好了。 订单表、订单明细表你根据需要来, 过去的不需要修改的才放历史表。
  • 打赏
  • 举报
回复
数据库(指数据落地的部分)本身是性能最低的,读写分离虽然听上去好像是提高了性能,但是它的前提是把性能最低的这个东西还要重复很多倍来先落地写,其实这个是不太科学的。假设写的东西特别少,那么就更加尤其适合缓存。假设数据改动频繁,尤其适合缓存。假设分布式的系统中需要保存最基本地数据一致性,那么内存缓存应该仅仅集中在一份而不是许多份。
  • 打赏
  • 举报
回复
读缓冲就好了,大部分时间不要去读数据库。
吉普赛的歌 2018-12-19
  • 打赏
  • 举报
回复
https://yq.aliyun.com/articles/80136 阿里云搭建 alwayson 的文档还是挺多的, 你自己试着去做下。 写的压力大, 一般只是个别表吧。 一天的数据量有多少? 另外, 写压力大的表, 一定要保持小表, 多余的数据应该每天用定时任务(sql 作业是最方便的)归档到历史表中去。 表小了, 读写的冲突会少一些, 效率更高。
正怒月神 版主 2018-12-19
  • 打赏
  • 举报
回复
alwayson 倒是没怎么了解,因为最近都开始使用 mysql了。
正怒月神 版主 2018-12-19
  • 打赏
  • 举报
回复
读写分离,那就主次同步。
吉普赛的歌 2018-12-19
  • 打赏
  • 举报
回复
alwayson 是最好的, 这是目前微软最新的技术。 不过, 要求数据库版本 2012+, 建议sqlserver 2014. 多写没必要, 这会带来混乱。 哪怕 mysql , 要多写都要采取很多措施防止冲突。 一般数据库的压力, 80%在于读而不是写。
soamu 2018-12-19
  • 打赏
  • 举报
回复
引用 1 楼 吉普赛的歌的回复:
alwayson 是最好的, 这是目前微软最新的技术。 不过, 要求数据库版本 2012+, 建议sqlserver 2014. 多写没必要, 这会带来混乱。 哪怕 mysql , 要多写都要采取很多措施防止冲突。 一般数据库的压力, 80%在于读而不是写。
如果写的压力大,能有什么优化的方法?增加服务器配置吗?
soamu 2018-12-19
  • 打赏
  • 举报
回复
阿里云没法做always on

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧