博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据库读写分离
阅读量:6935 次
发布时间:2019-06-27

本文共 917 字,大约阅读时间需要 3 分钟。

hot3.png

  随着一个网站的业务不断扩展,数据不断增加,数据库的压力也会越来越大,对数据库或者SQL的基本优化可能达不到最终的效果,我们可以采用读写分离的策略来改变现状。读写分离现在被大量应用于很多大型网站,这个技术也不足为奇了。ebay就做得非常好。ebay用的是oracle,听说是用Quest Share Plex 来实现主从复制数据。

     读写分离简单的说是把对数据库读和写的操作分开对应不同的数据库服务器,这样能有效地减轻数据库压力,也能减轻io压力。主数据库提供写操作,从数据库提供读操作,其实在很多系统中,主要是读的操作。当主数据库进行写操作时,数据要同步到从的数据库,这样才能有效保证数据库完整性Quest SharePlex就是比较牛的同步数据工具,听说比oracle本身的流复制还好,mysql也有自己的同步数据技术。mysql只要是通过二进制日志来复制数据。通过日志在从数据库重复主数据库的操作达到复制数据目的。这个复制比较好的就是通过异步方法,把数据同步到从数据库。

      主数据库同步到从数据库后,从数据库一般由多台数据库组成这样才能达到减轻压力的目的。读的操作怎么样分配到从数据库上?应该根据服务器的压力把读的操作分配到服务器,而不是简单的随机分配。mysql提供了MySQL-Proxy实现读写分离操作。不过MySQL-Proxy好像很久不更新了。oracle可以通过F5有效分配读从数据库的压力。

 mysql的读写分离

       上面说的数据库同步复制,都是在从同一种数据库中,如果我要把oracle的数据同步到mysql中,其实要实现这种方案的理由很简单,mysql免费,oracle太贵。好像Quest SharePlex也实现不了改功能吧。好像现在市面还没有这个工具吧。那样应该怎么实现数据同步?其实我们可以考虑自己开发一套同步数据组件,通过消息,实现异步复制数据。其实这个实现起来要考虑很多方面问题,高并发的问题,失败记录等。其实这种方法也可以同步数据到memcache中。听说oracle的Stream也能实现,不过没有试过。

转载于:https://my.oschina.net/u/1455908/blog/224986

你可能感兴趣的文章
Reinhold就Jigsaw投票一事向JCP提交公开信
查看>>
Spark、Flink、CarbonData技术实践最佳案例解析
查看>>
你在过度测试你的软件吗?
查看>>
慎用!BLEU评价NLP文本输出质量存在严重问题
查看>>
AppDynamics把业务交易跟踪扩展到SAP环境
查看>>
历时三年,美图全面容器化踩过的坑
查看>>
2018年终盘点:我们处在一个什么样的技术浪潮当中?
查看>>
IBM发布全球首台商用量子计算机
查看>>
在一个成熟的分布式系统中 如何下手做高可用?
查看>>
CoreOS 和 Kubernetes 1.5 自主运行 Kubernetes、Container Linux
查看>>
The only supported ciphers are AES-128-CBC and AES-256-CBC
查看>>
sphinx 全文搜索引擎
查看>>
Kotlin成为正式的Android编程语言
查看>>
物联网技术周报第 141 期: 使用 Alexa Voice 和 Raspberry Pi 构建图片识别应用
查看>>
微软必应从.NET Core 2.1获得了性能提升
查看>>
四说大数据时代“神话”:从大数据到深数据\n
查看>>
vue.js仿饿了么app---webpack配置项
查看>>
架构周报:微信后台系统的演进之路
查看>>
Oracle宣布提供新的Java支持价格体系
查看>>
phpstrom配置svn/git提交
查看>>