广告
返回顶部
首页 > 资讯 > 数据库 >MySQL 表的垂直拆分和水平拆分
  • 175
分享到

MySQL 表的垂直拆分和水平拆分

MySQLMySQL表垂直拆分MySQL表水平拆分 2022-05-30 09:05:16 175人浏览 安东尼
摘要

垂直拆分 垂直拆分是指数据表列的拆分,把一张列比较多的表拆分为多张表 通常我们按以下原则进行垂直拆分: 把不常用的字段单独放在一张表; 把text,blob等大字段拆分出来放在附表中; 经常组合查

垂直拆分

垂直拆分是指数据表列的拆分,把一张列比较多的表拆分为多张表

  1. 通常我们按以下原则进行垂直拆分:
  2. 把不常用的字段单独放在一张表;
  3. 把text,blob等大字段拆分出来放在附表中;

经常组合查询的列放在一张表中;

垂直拆分更多时候就应该在数据表设计之初就执行的步骤,然后查询的时候用jion关键起来即可;

水平拆分

水平拆分是指数据表行的拆分,表的行数超过200万行时,就会变慢,这时可以把一张的表的数据拆成多张表来存放。

水平拆分的一些技巧

1. 拆分原则

通常情况下,我们使用取模的方式来进行表的拆分;比如一张有400W的用户表users,为提高其查询效率我们把其分成4张表

users1,users2,users3,users4

通过用ID取模的方法把数据分散到四张表内Id%4+1 = [1,2,3,4]

然后查询,更新,删除也是通过取模的方法来查询


$_GET['id'] = 17,
17%4 + 1 = 2, 
$tableName = 'users'.'2'
Select * from users2 where id = 17;

在insert时还需要一张临时表uid_temp来提供自增的ID,该表的唯一用处就是提供自增的ID;


insert into uid_temp values(null);

得到自增的ID后,又通过取模法进行分表插入;

注意,进行水平拆分后的表,字段的列和类型和原表应该是相同的,但是要记得去掉auto_increment自增长

另外

  • 部分业务逻辑也可以通过地区,年份等字段来进行归档拆分;
  • 进行拆分后的表,只能满足部分查询的高效查询需求,这时我们就要在产品策划上,从界面上约束用户查询行为。比如我们是按年来进行归档拆分的,这个时候在页面设计上就约束用户必须要先选择年,然后才能进行查询;
  • 在做分析或者统计时,由于是自己人的需求,多点等待其实是没关系的,并且并发很低,这个时候可以用uNIOn把所有表都组合成一张视图来进行查询,然后再进行查询;

Create view users as select from users1 union select from users2 union.........

以上就是Mysql 表的垂直拆分和水平拆分的详细内容,更多关于mysql 表拆分的资料请关注自学编程网其它相关文章!

您可能感兴趣的文档:

--结束END--

本文标题: MySQL 表的垂直拆分和水平拆分

本文链接: https://www.lsjlt.com/news/9680.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL 表的垂直拆分和水平拆分
    垂直拆分 垂直拆分是指数据表列的拆分,把一张列比较多的表拆分为多张表 通常我们按以下原则进行垂直拆分: 把不常用的字段单独放在一张表; 把text,blob等大字段拆分出来放在附表中; 经常组合查...
    99+
    2022-05-30
    MySQL MySQL 表垂直拆分 MySQL 表水平拆分
  • 数据库垂直拆分 水平拆分
    1 数据库拆分         当我们使用读写分离、缓存后,数据库的压力还是很大的时候,这就需要使用到数据库拆分了。                  数据库拆分简单来说,就是指通过某种特定的条件,按照某个维度,将我们存放在同一个数据库...
    99+
    2015-05-05
    数据库垂直拆分 水平拆分
  • MySQL垂直拆分和水平拆分的优缺点和共同点总结
    数据的拆分(Sharding)根据其拆分分规则的类型,可以分为两种拆分模式。一种是按照不同的表(或者Schema)来切分到不同的数据库(主机)之上,这种切可以称之为数据的垂直(纵向)拆分; 另外一种则是根据...
    99+
    2022-10-18
  • mysql垂直拆分是什么
    今天就跟大家聊聊有关mysql垂直拆分是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1、概念垂直拆分是指数据列的分割,将列多的表分割成多个表。表格的记录虽然不多,但字段长,表格...
    99+
    2023-06-15
  • mysql中怎么实现水平分表和垂直分表
    本篇文章为大家展示了mysql中怎么实现水平分表和垂直分表,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。 什么是数据库分区? 数据库分区是一种物理数据库设计技术...
    99+
    2022-10-18
  • 数据库中的垂直拆分
    这期内容当中小编将会给大家带来有关数据库中的垂直拆分介绍,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。垂直切分的概念垂直拆分是根据数据库里面的数据表的相关性进行拆分,比如...
    99+
    2022-10-18
  • mysql中水平拆分指的是什么
    这篇文章主要介绍了mysql中水平拆分指的是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。mysql水平拆分1、说明水平拆分是通过某种战略将数据单片存储,单片存储器内的单...
    99+
    2023-06-15
  • Mysql中怎么实现水平分表与垂直分表
    本篇文章为大家展示了Mysql中怎么实现水平分表与垂直分表,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。水平分表:如上图所示:另外三张表表结构是一样的  ...
    99+
    2022-10-18
  • mysql数据水平拆分怎么实现
    MySQL的数据水平拆分可以通过以下几种方式来实现: 分区(Partitioning):MySQL支持分区表,可以将表的数据按照...
    99+
    2023-10-27
    mysql
  • 怎么理解MySQL垂直和水平切分
    这篇文章主要介绍“怎么理解MySQL垂直和水平切分”,在日常操作中,相信很多人在怎么理解MySQL垂直和水平切分问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么理解MySQ...
    99+
    2022-10-19
  • 数据库中的水平拆分是什么
    数据库中的水平拆分是什么?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。垂直拆分后遇到单机瓶颈,可以使用水平拆分。相对于垂直拆分...
    99+
    2022-10-18
  • MySQL垂直切分和水平切分概念和优缺点介绍
    数据的切分(Sharding)根据其切分规则的类型,可以分为两种切分模式。一种是按照不同的表(或者Schema)来切分到不同的数据库(主机)之上,这种切可以称之为数据的垂直(纵向)切分;另外一种则是根据表中...
    99+
    2022-10-18
  • 如何实现MySQL底层优化:数据表的水平和垂直分割策略
    如何实现MySQL底层优化:数据表的水平和垂直分割策略,需要具体代码示例引言:在大型应用场景下,MySQL数据库经常面临着海量数据的存储和查询压力。为了解决这个问题,MySQL提供了数据表的分割策略,包括水平分割(Horizontal Pa...
    99+
    2023-11-08
    MySQL 数据表 底层优化
  • ExcelVBA按列拆分工作表和工作簿的实现
    目录1,工作表按列拆分为工作表2,工作表按列拆分为工作簿3,工作簿按列拆分3.1,复制法3.2,删除法4,工作表按列拆分,支持多列关键值改进《将excel按照某一列拆分成多个文件》,...
    99+
    2023-01-29
    Excel VBA按列拆分 Excel VBA 拆分
  • 【Python】分割列表(list)方法详解:平均n等份、拆成一个一个的
    【Python】分割列表(list)方法详解:平均n等份,拆成一个一个的 文章目录 【Python】分割列表(list)方法详解:平均n等份,拆成一个一个的1. 介绍2. 方法2.1 分割大列...
    99+
    2023-09-01
    python 开发语言
  • 通过MySQL开发实现分库分表与水平扩展的项目经验分享
    通过MySQL开发实现分库分表与水平扩展的项目经验分享引言:随着大数据时代的到来,数据量的爆炸式增长使得传统的单机数据库已经无法满足业务需求。为了解决数据存储和查询的性能问题,分库分表与水平扩展成为了当下非常流行的技术。本文将分享一些通过M...
    99+
    2023-11-02
    水平扩展 项目经验分享 MySQL分库分表
  • BootStrap如何实现响应式导航栏垂直平分和下拉列表的居中问题
    这篇文章将为大家详细讲解有关BootStrap如何实现响应式导航栏垂直平分和下拉列表的居中问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在查看psd图的效果是导航栏的...
    99+
    2022-10-19
  • PHP与MySQL索引的分区表和水平分表的设计策略及其对查询性能的影响
    引言:在开发Web应用程序时,PHP与MySQL是经常使用的强大工具。在设计数据库结构时,索引的选择和使用对查询性能影响极大。本文将重点讨论索引的分区表和水平分表的设计策略以及对查询性能的影响,并提供具体的代码示例。一、索引的分区表设计策略...
    99+
    2023-10-21
    查询性能 分区表 水平分表
  • 队列技术在PHP与MySQL中的消息拆分和消息合并的应用
    引言:队列技术是一种非常重要的数据结构,它在分布式系统中起到了至关重要的作用。在PHP与MySQL中,队列技术可以被广泛应用于消息拆分和消息合并的场景中。本文将介绍队列技术在PHP与MySQL中的应用,并提供具体的代码示例。一、队列技术的概...
    99+
    2023-10-21
    MySQL PHP 队列 消息合并 消息拆分
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作