分库分表知识总结(二)之垂直分表

简介: 分库分表知识总结(二)之垂直分表

垂直分表

用户在浏览商品列表时,只有对某商品感兴趣时才会查看该商品的详细描述。因此,商品信息中商品描述字段访问频次较低,且该字段存储占用空间较大,访问单个数据IO时间较长;商品信息中商品名称、商品图片、商品价格等其他字段数据访问频次较高

由于这两种数据的特性不一样,因此考虑将商品信息表拆分

定义:

将一个表按照字段分成多表,每个表存储其中一部分字段

它带来的提升:
  • 为了避免 IO 争抢并减少锁表的几率,查看详情的用户与商品信息浏览互不影响
  • 充分发挥热门数据的操作效率,商品信息的操作的高效率不会被商品描述的低效率所拖累
执行原则:
  • 把不常用的字段单独放在一张表
  • textblob等大字段拆分出来放在附表中
  • 经常组合查询的列放在一张表中

垂直分库

通过垂直分表性能得到了一定程度的提升,但是还没有达到要求,并且磁盘空间也快不够了,因为数据还是始终限制在一台服务器,库内垂直分表只解决了单一表数据量过大的问题,但没有将表分布到不同的服务器上,因此每个表还是竞争同一个物理机的CPU、内存、网络IO、磁盘。

概念:

按照业务将表进行分类,分布到不同的数据库上面,每个库可以放在不同的服务器上,它的核心理念是专库专用

它带来的提升:
  • 解决业务层面的耦合,业务清晰
  • 能对不同业务的数据进行分级管理、维护、监控、扩展等
  • 高并发场景下,垂直分库一定程度的提升IO、数据库连接数、降低单机硬件资源的瓶颈
弊端:

垂直分库通过将表按业务分类,然后分布在不同数据库,并且可以将这些数据库部署在不同服务器上,从而达到多个服务器共同分摊压力的效果,但是依然没有解决单表数据量过大的问题。

目录
相关文章
|
2月前
|
存储 大数据 数据库
分库分表知识总结(三)之水平分表
分库分表知识总结(三)之水平分表
60 0
|
2月前
|
SQL 存储 数据库连接
什么是分库分表,为什么要分库分表?
笔者经常将缓存、分库分表、消息队列定义为高并发三剑客。开发互联网应用系统时,分库分表是一个绕不开的技术点。 这篇文章,我们会探讨如下问题:
|
12月前
|
存储 缓存 数据库
什么是垂直分表、垂直分库、水平分表、水平分库?
什么是垂直分表、垂直分库、水平分表、水平分库?
125 0
|
12月前
|
算法 Java 数据库连接
垂直分表和垂直分库
垂直分表和垂直分库
|
12月前
|
SQL 算法 Java
水平分库和水平分表
水平分库和水平分表
|
存储 数据处理 数据库
分表方案有哪些
分表方案有哪些
92 0
|
存储 数据库连接 数据库
分库方案有哪些
分库方案有哪些
85 0
|
监控 数据库
垂直分库
垂直分库
74 0
垂直分库
|
缓存 数据库 索引
水平分表
水平分表
110 0
水平分表
|
存储 大数据 数据库
水平分库
水平分库
97 0
水平分库