1,水平分割:

首先 :表的记录很多  根据一列或多列数据的值把数据行放到两个独立的表中。

例:QQ的登录表。假设QQ的用户有100亿,如果只有一张表,每个用户登录的时候数据库都要从这100亿中查找,会很慢很慢。如果将这一张表分成100份,每张表有1亿条,就小了很多,比如qq0,qq1,qq1...qq99表。

用户登录的时候,可以将用户的id%100,那么会得到0-99的数,查询表的时候,将表名qq跟取模的数连接起来,就构建了表名。比如123456789用户,取模的89,那么就到qq89表查询,查询的时间将会大大缩短。

这就是水平分割。

2,垂直分割:

垂直分割指的是:表的记录并不多,但是字段却很长,表占用空间很大,检索表的时候需要执行大量的IO,严重降低了性能。这时需要把大的字段拆分到另一个表,并且该表与原表是一对一的关系。

例如学生答题表tt:有如下字段:

Id name 分数 题目 回答

其中题目和回答是比较大的字段,id name 分数比较小。

如果我们只想查询id为8的学生的分数:select 分数 from tt where id = 8;

虽然知识查询分数,但是题目和回答这两个大字段也是要被扫描的,很消耗性能。但是我们只关心分数,并不想查询题目和回答。这就可以使用垂直分割。

我们可以把题目单独放到一张表中,通过id与tt表建立一对一的关系,同样将回答单独放到一张表中。

这样我们插叙tt中的分数的时候就不会扫描题目和回答了。

3,其他要点:

1)存放图片、文件等大文件用文件系统存储。数据库只存储路径,图片和文件存放在文件系统,甚至单独存放在一台服务器(图床)。

2)数据参数配置。

最重要的参数就是内存,我们主要用的innodb引擎,所以下面两个参数调的很大:

innodb_additional_mem_pool_size=64M

innodb_buffer_pool_size=1G

对于MyISAM,需要调整key_buffer_size,当然调整参数还是要看状态,用show status语句可以看到当前状态,以决定该调整哪些参数。

4,合理的硬件资源和操作系统

如果机器的内存超过4G,那么应当采用64位操作系统和64位MySQL。

案例:

简单购物系统暂设涉及如下表:

1.产品表(数据量10w,稳定)

2.订单表(数据量200w,且有增长趋势)

3.用户表 (数据量100w,且有增长趋势)

以mysql为例讲述下水平拆分和垂直拆分,mysql能容忍的数量级在百万静态数据可以到千万

垂直拆分:

解决问题:

表与表之间的io竞争

不解决问题:

单表中数据量增长出现的压力

方案:

把产品表和用户表放到一个server上

订单表单独放到一个server上

水平拆分:

解决问题:

单表中数据量增长出现的压力

不解决问题:

表与表之间的io争夺

方案:

用户表通过性别拆分为男用户表和女用户表

订单表通过已完成和完成中拆分为已完成订单和未完成订单

产品表 未完成订单放一个server上

已完成订单表盒男用户表放一个server上

女用户表放一个server上

转载自: https://www.2cto.com/database/201709/676637.html

水平拆分 垂直拆分 分表 什么意思相关推荐

  1. Mysql 分表 垂直分割_图文解释 读写分离、垂直拆分、水平拆分、分库分表

    1. 前言 相信你经常被 读写分离.垂直拆分.水平拆分.分库分表 这几个名词搞得很懵逼.我有时候也很懵逼,那么今天就来把这几个数据库常用术语搞清楚,同时也记录一下. 2. 读写分离 这个相对比较好理解 ...

  2. Mysql数据库数据拆分之分库分表总结

    Mysql数据库分库和分表方式,涉及到mysql数据库相关知识,对mysql数据库分库分表相关知识感兴趣的朋友一起学习吧 分库 场景: 分表能够解决单表数据量过大带来的查询效率下降的问题,但是,却无法 ...

  3. 企业实战_12_MyCat水平扩展_分库分表

    接上一篇:企业实战_11_MyCat垂直拆分相关配置 https://gblfy.blog.csdn.net/article/details/100055838 文章目录 一.概念理论理解 1. 垂直 ...

  4. 分布式系统水平和垂直拆分

  5. 表的垂直拆分和水平拆分

    为什么80%的码农都做不了架构师?>>>    垂直拆分 垂直拆分是指数据表列的拆分,把一张列比较多的表拆分为多张表 通常我们按以下原则进行垂直拆分: 把不常用的字段单独放在一张表; ...

  6. MYSQL水平拆分与垂直拆分

    目前很多互联网系统都存在单表数据量过大的问题,这就降低了查询速度,影响了客户体验.为了提高查询速度,我们可以优化sql语句,优化表结构和索引,不过对那些百万级千万级的数据库表,即便是优化过后,查询速度 ...

  7. mysql数据库垂直切分_mysql数据库的水平拆分与垂直拆分

    近端时间在面试,发现很多面试官或者面试都把数据的水平拆分合垂直拆分给搞混了,今天特意写了一篇博客来说说水平拆分和垂直拆分希望对程序猿们有所帮助. 数据库水平与垂直拆分: 垂直(纵向)拆分:是指按功能模 ...

  8. 数据切分 垂直切分、垂直拆分与水平拆分的优缺点

    数据切分 垂直切分 关于数据库的水平切分和垂直切分的一些概念垂直拆分垂直拆分就是要把表按模块划分到不同数据库表中(当然原则还是不破坏第三范式),这种拆分在大型网站的演变过程中是很常见的.当一个网站还在 ...

  9. mysql水平拆分查询_MYSQL水平拆分与垂直拆分

    目前很多互联网系统都存在单表数据量过大的问题,这就降低了查询速度,影响了客户体验.为了提高查询速度,我们可以优化sql语句,优化表结构和索引,不过对那些百万级千万级的数据库表,即便是优化过后,查询速度 ...

最新文章

  1. shell中竖线的作用_如何在 Linux 中安装、配置和使用 Fish Shell?
  2. 老友记即将回归!用数据来重温经典剧情:老友记里到底说了多少次Oh my God?...
  3. 使用bat文件实现批量重命名功能
  4. 图解SQL基础知识,小白也能看懂的SQL文章!
  5. C语言之理解(*(void (*)())0)()和signal函数
  6. 定时任务(Spring Cloud Task)
  7. ECharts属性设置
  8. 腾讯帝国十八年,被它借鉴过的产品都有哪些?
  9. spring security3.x学习(15)_扩展JdbcDaoImpl。
  10. iphone型号表_iPhone手机型号信息大全 (最新)
  11. ERP系统之JPJDE入门-1 JDE 简史
  12. 途家2019校招笔试 1 求最大公约数和最小公倍数
  13. [转载]Ext.form.BasicForm getValues()和getFie_-Chaz-_新浪博客
  14. linux下显示隐藏文件
  15. NYOJ1016(德莱联盟)(判断线段相交)
  16. 樊登读书分享ppt_樊登读书会
  17. 360兼容性问题:教资报名请使用搜狗浏览器(兼容模式)、360浏览器(兼容模式)、QQ浏览器(内核模式请选择:总是使用IE内核)、IE系列浏览器。
  18. openssl 的安装
  19. 高配低价的新国民旗舰:联想Z5评测体验
  20. 江门python培训机构

热门文章

  1. Day5_HTML+CSS+JS——RGB三原色
  2. 《卡拉马佐夫兄弟》:道德权威
  3. MVC, MVP 与 MVVM
  4. 让男人无法抗拒的三种傻女人【顶】【转】
  5. RocketMQ 消费者Rebalance 解析——图解、源码级解析
  6. 【安全科普】揭秘IPS之网络攻击的“字典”
  7. 【高德地图进阶】--- 使用DistrictSearch 绘制城市版块
  8. spark集群环境下Lost task 0.0 in stage 10.0 (TID 17, 10.28.23.202): java.io.FileNotFoundException
  9. 中学生用计算机的警句,初中励志名言名句大全,适合中学生的名言警句,初中生励志名言格言...
  10. c语言 最大公约数 最小公倍数的编程,C语言三种算法求解最大公约数与最小公倍数...