zoukankan      html  css  js  c++  java
  • 分库发表

    1. 按数量切分,1 ~ 1000的存在第一张表,1001 ~ 2000存在第二张表;
    2.按时间切分,比如:2019年1月份存在第一张表,2019年2月份存在第二张表;

    3.还可以按照id的哈希值进行切分,等等等等

    一.水平切分需要路由
    既然数据已经水平切分,那么数据就保存在不同的表中,如果有新的请求要求访问数据库,那么怎么从多个表中找到对应的数据呢?

    答案就是:路由。

    那么问题来了,什么是路由?

    通过分库分表规则查找到对应的表和库的过程叫作路由。简单的说,路由就是映射表,你想查什么,告诉它,它会告诉你数据在哪。
    例如,分库分表的规则是user_id % 4,当用户新注册了一个账号时,假设用户的ID是123,我们就可以通过123 % 4 = 3确定此账号应该被保存在User3表中。那么以后当ID为123的用户登录时,我们可通过123 % 4 = 3计算,确定其被记录在User3中。

    针对数据量巨大的单张表(比如订单表),按照某种规则(时间,HASH取模等),切分到多张表里面去。 但是这些表还是在同一个库中,所以库级别的数据库操作还是有IO瓶颈。不建议采用。

    小蚊子大人
  • 相关阅读:
    Android调用第三方so
    九度oj题目1518:反转链表
    九度oj题目1014:排名
    九度oj题目1012:畅通工程
    九度oj题目1027:欧拉回路
    九度oj题目1348:数组中的逆序对
    九度oj题目1521:二叉树的镜像
    九度oj题目1385:重建二叉树
    poj 1577 Falling Leaves
    poj 1321 棋盘问题
  • 原文地址:https://www.cnblogs.com/ywsheng/p/15038223.html
Copyright © 2011-2022 走看看