zoukankan      html  css  js  c++  java
  • mysql 集群的一些概念

    读写分离: 主备机有 master-master方式,mysql自己提供两个机器之间的备份 binlog方式,一个机器master 用于写数据,一个用于读数据,写数据的那个机器也应有读读功能,有既有读又有写的操作,需要在第一个机器上完成。但现在MYSQL的跨库有bug,说以所有的库的表结构应该都一样。

    垂直分区: 把不同的业务(表)放在不同的数据库节点上,不同区上,假如有两个区,两个数据量特别大的表,把两张表分别放在不同区上。这样数据同步的时候,主从master不同的节点(服务器)到备用master的不同的节点效率就高了,但是这样放在不同的服务器,如果这两个表和其他表存在联表查询,那么就只能把原来的sql语句给拆分了,先查询一个表,在查询另一个,虽然说这个会消耗更过性能,但比起那种大量数据同步,负担还是减轻了不少。

    水平分区: 按路由原则将同一个表的不同记录分到不同节点上,路由原则就是用的算法,一般都是动态哈西算法,用表中id取模分配到不同节点上,有4台机器就模4,这样有个问题,如果数据量太大,要增加节点,所有的数据都得重新分区,那么将是一个的很庞大的计算量。新增4个节点,就需要模8了。

    查询问题: 把业务相关的数据尽可能放在一个节点上,这样方便关联查询,要不就要扫描整个路由再扫分库,因为不知道在哪个分库上,就得挨个库,全表查。另一种解决方案,是建立搜索引擎,solr,可以在水平分区前将该记录要存在哪个库等信息存起来,建立索引,这样查询就方便了。

  • 相关阅读:
    OC字符串处理
    用 map 表达互斥逻辑
    iOS之LLDB调试器
    iOS 线程安全 锁
    OC实现 单向链表
    iOS读取info.plist中的值
    SQLite 如何取出特定部分数据
    UIView常用的一些方法setNeedsDisplay和setNeedsLayout
    xCode常用快捷键
    oppo7.0系统手机(亲测有效)激活Xposed框架的流程
  • 原文地址:https://www.cnblogs.com/weixiaole/p/4281642.html
Copyright © 2011-2022 走看看