zoukankan      html  css  js  c++  java
  • mysql分布式

    一,复制,对数据进行备份,实现搞可用,提高吞吐量,实现高性能。

      1,主从架构

      2,多主架构

      3,主主从从

      4,主备 (实际用得多)

    二,分片/分库分表 ()

    1,垂直拆分

      1,垂直分表

      2,垂直分库

      如果做垂直分库,应该把有关联的表放在同一个库中,因为数据库的事务不能跨库,不能使用inner join,  order_by ,等链接查询,只能分次数查询,在应用端在合并。

    2,水平拆分

      1,水平分表

      2,水平分库分表

      3,分布式id

     需求:水平分表后,需要保证多表id冲突问题

     雪花算法:1bit + 时间戳41 + 机器id10 序列号12

     id 取模运算

    分布式事务

    在一个事务不能完成的情况下,

    核心:二阶段提交协议(简称2PC协议/XA协议)

    问题:会出现事务等待情况,增加死锁的机率

    基于状态/消息的最终一致性方案(使用较多)

    悲观锁:

      开发者主动设置

    乐观锁:

      先不加锁(假设没有并发),但更新前校验数据的一致性,手动代码实现(先查在更新)

      

  • 相关阅读:
    ORM中的事务和锁
    双下划线跨表查询 聚集查询 分组查询 FQ查询
    cookie和session
    多表查询
    单表查询
    ORM
    Djangon之模板
    Django之视图函数
    Django之URL路由系统
    web框架的本质及自定义web框架
  • 原文地址:https://www.cnblogs.com/wjun0/p/11881212.html
Copyright © 2011-2022 走看看