zoukankan      html  css  js  c++  java
  • 数据库水平分库,垂直分库的新理解

    水平分库:当数据量巨大时,将数据放到不同的表中,比如表1,表2,表3,...;

    垂直分库:当一张表的字段太多,可拆分出一张或多张分表,根据主键唯一标示;

    新理解:

    垂直分库:当一张表中字段不多,当某些字段长度过长,表占用空间很大,检索表的时候需要执行大量的IO(数据库检索的本质是对硬盘中的文件进行io访问),

    此时可以考虑对长度较长的字段进行拆分,单独成表,用原表主键进行唯一标示。

    相反:

    当数据库记录数不多,但字段较多,可对部分字段进行整合,比如用户的信息(电话,手机号...),以json字符串的形式保存到数据库,这样一目了然,代价就是service层中要对json进行但多解析。

    如何取舍,看项目需求。

     --------------------------------------------------------------------------------------

    2017.05.25

    补充:

    垂直拆分:以某些标准,将单个表拆分成多个表.

    水平拆分:水平拆分行,行数据拆分到不同表中, 垂直拆分列,表数据拆分到不同表中.

    以上所谓的概念标准都只是一种描述,其实更多的是一种思想,千万不能被以上概念影响,理解教条化.

  • 相关阅读:
    猜数字游戏
    Visual Studio Code如何编写运行C、C++
    Git Submodule使用完整教程
    同一客户端多个git账号的配置
    让 Git Bisect 帮助你
    GitHub 风格的 Markdown 语法
    git 命令图解
    图解git中的最常用命令
    Understanding the Bias-Variance Tradeoff
    Seven Techniques for Data Dimensionality Reduction
  • 原文地址:https://www.cnblogs.com/zqsky/p/6137182.html
Copyright © 2011-2022 走看看