zoukankan      html  css  js  c++  java
  • MySQL分库分表-理论

    分库分表的几种方式

    把一个实例中的多个数据库拆分到不同的实例

    把一个库中的表分离到不同的数据库中

    数据库分片前的准备

    在数据库并发和负载没有达到限制时,不推荐水平拆分

    对一个库中的相关表进行水平拆分到不同的实例的数据库中

    选择分区键

    • 分区键要能尽量避免跨分片查询的发生
    • 分区键要能尽量使用各个分片中的数据平均

    如何存储无需分片的表

    • 每个分片中存储一份相同的数据
    • 使用额外的节点统一存储

    如何在节点上部署分片

    • 每个分片使用单一数据库,并且数据库名也相同
    • 将多个分片表存储在一个数据库中,并在表名上加入分片号后缀
    • 在一个节点中部署多个数据库,每个数据库包含一个分片

    如何分配分片中的数据

    • 按安分区键的Hash值取模来分配分片数据
    • 按分区键的范围来分配分片数据
    • 按分区键和分片的映射表来分配分片数据

    如何生成全局唯一ID

    • 使用auto_increment_increment和auto_increment_offset参数
    • 使用全局节点来生成ID
    • 在Redis等缓存服务中创建全局ID
  • 相关阅读:
    JEECG开发总结
    ehcache集群的配置
    spring拦截器
    spring的基本配置
    kindeditor编辑器
    jQuery中的Ajax
    表单验证
    Python中的Random模块
    Open vSwitch FAQ (二)
    Open vSwitch FAQ (一)
  • 原文地址:https://www.cnblogs.com/okokabcd/p/9119849.html
Copyright © 2011-2022 走看看