zoukankan      html  css  js  c++  java
  • Mysql--->(优化)主从复制,读写分离,分库分表

    数据库优化

    1、换数据库

    2、优化SQL

    3、读写分离

    4、分库分表

    1、主从同步,读写分离

    一次插入,多次查询

    Mysql    proxy 代理进行

     2、分库分表

    分库

    分表

    垂直:

    垂直:

    电商:订单表,会员表,商品表

    user表:userbase、userinfo(主键user id 作唯一表示)

    水平:

    水平:

    一个库分成两个 一个表分成两个表

     垂直

    1、每个库(表)的结构都不一样

    2、每个库(表)的数据至少有一列是一样的

    3、每个库(表)的并集就是全部数据

    优点: 

    1、拆分后业务清晰

    2、数据维护简单,按业务不同在不同机器上

    缺点:

    1、单表数据量大,读写压力大

    2、受业务来决定或被限制一个业务会影响数据库瓶颈

    3、部分业务无法关联,提高开发复杂度

    水平

    1、每个库(表)的结构都一样

    2、每个库(表)的数据都是一样的

    3、每个库(表)的并集就是全部数据

     优点:

    1、单库的数据保持在一定的量,有助于性能提高

    2、提高了系统的稳定性和负载能力

    3、切分的表的结构相同,程序改造较少

    缺点:

    1、扩容难,增加库计算规则发生改变

    2、拆分规则很难抽象出来

    3、分片事务的一致性问题部分业务的无法关联,只能通过Java接口去调用

    问题

    ACID 分布式事务

    维护成本

    跨库的查询问题

    分布式全局唯一ID

    分库分表 中间件

    proxy代理层

    mycat、shardingproxy

    支持跨语言

    JDBC应用层

    shardingjdbc

    支持多种数据库

  • 相关阅读:
    第16周作业
    第15周作业
    迟到的第14周作业
    第13次作业集
    软件工程结课总结
    第13次作业
    第12次作业
    第11次作业--字符串的处理
    第10次作业(2)
    第十次作业
  • 原文地址:https://www.cnblogs.com/springxian/p/14355990.html
Copyright © 2011-2022 走看看