`
blueyanghualong
  • 浏览: 227778 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

转 读写分离

 
阅读更多

 

随着一个网站的业务不断扩展,数据不断增加,数据库的压力也会越来越大,对数据库或者SQL的基本优化可能达不到最终的效果,我们可以采用读写分离的策略来改变现状。读写分离现在被大量应用于很多大型网站,这个技术也不足为奇了。ebay就做得非常好。ebay用的是oracle,听说是用Quest Share Plex 来实现主从复制数据。
     读写分离简单的说是把对数据库读和写的操作分开对应不同的数据库服务器,这样能有效地减轻数据库压力,也能减轻io压力。主数据库提供写操作,从数据库提供读操作,其实在很多系统中,主要是读的操作。当主数据库进行写操作时,数据要同步到从的数据库,这样才能有效保证数据库完整性。Quest SharePlex就是比较牛的同步数据工具,听说比oracle本身的流复制还好,mysql也有自己的同步数据技术。mysql只要是通过二进制日志来复制数据。通过日志在从数据库重复主数据库的操作达到复制数据目的。这个复制比较好的就是通过异步方法,把数据同步到从数据库。
      主数据库同步到从数据库后,从数据库一般由多台数据库组成这样才能达到减轻压力的目的。读的操作怎么样分配到从数据库上?应该根据服务器的压力把读的操作分配到服务器,而不是简单的随机分配。mysql提供了MySQL-Proxy实现读写分离操作。不过MySQL-Proxy好像很久不更新了。oracle可以通过F5有效分配读从数据库的压力。


ebay的读写分离(网上找到就拿来用了)


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

相关推荐

    C# Redis数据库读写分离

    在IT行业中,数据库读写分离是一种常见的优化策略,主要用于提高系统的并发处理能力和数据读取效率。Redis作为一款高性能的键值存储系统,被广泛应用于缓存、消息队列等场景。在C#环境下,我们可以利用各种客户端库...

    oracle读写分离(中间键Mycat)

    Oracle数据库的读写分离是一种优化策略,用于提升大型系统中数据处理能力,通过将读操作与写操作分离到不同的数据库实例上,实现高并发场景下的性能优化。在本配置文档中,我们将关注如何利用Mycat中间键实现Oracle ...

    springboot+mysql读写分离

    springboot结合mysql主从来实现读写分离 一、实现的功能 1、基于springboot框架,application.yml配置多个数据源,使用AOP以及AbstractRootingDataSource、ThreadLocal来实现多数据源切换,以实现读写分离。mysql...

    springboot实现mysql的读写分离的案例源码

    读写分离就是对于一条SQL该选择哪一个数据库去执行,至于谁来做选择数据库这件事,有两个,要么使用中间件帮我们做,要么程序自己做。一般来说,读写分离有两种实现方式。第一种是依靠中间件MyCat,也就是说应用程序...

    mysql与mycat的读写分离

    ### MySQL与Mycat的读写分离 #### 一、MySQL主从配置 在了解如何实现MySQL与Mycat的读写分离之前,首先要掌握如何配置MySQL的主从复制。这是实现读写分离的基础。 ##### 开启MySQL主从数据复制 主从数据复制通过...

    MyBatis做读写分离

    ### MyBatis 实现读写分离 #### 一、读写分离的概念与优势 在数据库设计与应用领域,“读写分离”是一种常见的架构模式,它通过将数据读取操作和写入操作分配到不同的数据库服务器上来提高系统的整体性能。这种...

    spring mysql 读写分离

    在企业级应用中,数据库的读写分离是一种常见的优化策略,它可以提高系统的并发处理能力,减轻主数据库的压力,确保数据的稳定性和可用性。Spring框架提供了对MySQL数据库读写分离的良好支持,使得开发者能够轻松地...

    服务读写分离架构

    ### 服务读写分离架构分析 #### 一、引言 在互联网架构设计中,针对高并发场景,读写分离是一种常见的策略。该策略旨在通过将读操作与写操作分离来提高系统的整体性能和可用性。然而,并非所有的场景都适合采用...

    springBoot+mybatis读写分离(AOP)

    在IT行业中,数据库读写分离是一种常见的优化策略,特别是在高并发场景下,它能有效提升系统的性能和稳定性。本文将详细讲解如何利用Spring Boot、MyBatis和AOP(面向切面编程)来实现这一技术。 首先,让我们理解...

    mycat 读写分离 优化

    ### MyCAT 读写分离优化详解 #### 一、前言 ##### 1.1 编写目的 本文档旨在探讨MyCAT读写分离模式下的智能优化方案,并分享实际应用场景中的经验教训。随着数据量的增长及业务复杂度的提升,单一数据库往往难以...

    mysql_双主+keepalived读写分离.docx

    MySQL 双主 + Keepalived 读写分离解决方案 MySQL 双主 + Keepalived 读写分离是一种高可用性解决方案,旨在解决 MySQL 单点故障问题。该方案通过双主 MySQL 实现高可用性,并使用 Keepalived 实现虚拟 IP(VIP)...

    mysql 读写分离软件

    MySQL 读写分离是数据库架构优化中的一个常见策略,它主要应用于高并发、大数据量的系统中,以提高数据库系统的性能和可用性。在这种架构下,数据库被分为两部分:主库(Master)负责处理所有的写操作(INSERT、...

    使用sharding-jdbc快速实现自动读写分离-demo源码

    在IT行业中,数据库读写分离是一种常见的优化策略,它能够有效地提高系统的并发处理能力和响应速度。Sharding-JDBC是阿里巴巴开源的一款轻量级Java框架,它可以在不改变业务代码的前提下,帮助我们快速实现数据库的...

    Mybatis读写分离 mysql数据库 Druid连接池

    Mybatis读写分离,支持n多的从库,简单的负载均衡。数据库是mysql,采用druid连接池。 读写分离采用插件的形式实现的,优点是不需要写源注解,不需要写分开的Mapper.xml。 如果只有主库的话,那么会创建两个地址相同...

    oracle读写分离.docx

    ### Oracle读写分离详解 #### 一、读写分离概念 **读写分离**是一种数据库设计模式,旨在通过将数据库的读操作与写操作分开,从而优化系统的整体性能。这种模式下,通常会有两个或多个数据库实例:一个主数据库...

    springboot 实现mysql读写分离

    在IT行业中,数据库读写分离是一种常见的优化策略,特别是在高并发和大数据量的场景下,以提高系统的性能和可用性。本教程将详细介绍如何利用SpringBoot框架实现MySQL的读写分离,以及涉及到的相关技术。 首先,...

    springaop多数据库读写分离

    在IT行业中,数据库读写分离是一种常见的优化策略,主要用于提高系统的并发处理能力和数据读取效率。Spring AOP(面向切面编程)与MyBatis框架的结合应用,可以帮助我们实现这一目标。以下将详细讲解如何利用Spring ...

    mysql主从复制以及读写分离--读写分离

    MySQL的主从复制和读写分离是数据库高可用性和负载均衡的重要策略,它们在大型分布式系统中尤为关键。本文将详细解析这两个概念及其实施过程。 首先,MySQL的主从复制是指在一个MySQL集群中,数据的变化(写操作)...

Global site tag (gtag.js) - Google Analytics