iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL分区表和分桶表的操作详解
  • 528
分享到

MySQL分区表和分桶表的操作详解

MySQL分区表和分桶表MySQL分区表MySQL分桶表 2023-05-12 05:05:54 528人浏览 独家记忆
摘要

目录1.创建分区表2.增删改查操作2.1 插入数据2.2 操作数据3. 二级分区表3.1 创建分区表3.2 插入数据4.动态分区5.分桶表5.1 新建分桶表5.2 插入数据5.3 既分区有分桶6 分区与分桶的区别1.创建

1.创建分区表

create table dept_partition(
    deptno int,
    dname string,
    loc int
)
partitioned by (dt string)  // 分区字段(date)
row fORMat delimited fields terminated by '\t';

2.增删改查操作

2.1 插入数据

1)导入本地数据

-- 创建一个名字为dt='2022-06-14'的文件夹,在其中导入数据
load data local inpath '/opt/module/Hive/datas/dept.txt' 
into table dept_partition 
partition(dt='2022-06-14'); 

分区表就是先创建文件夹,然后在文件夹中写入数据

换句话说,分区表就是将一张大表分成若干个文件夹进行管理

2)插入数据

insert overwrite table dept_partition partition(dt='2022-06-17')
select deptno, dname, loc from dept;
insert overwrite table dept_partition
select deptno, dname, loc, '2022-06-18' from dept;

2.2 操作数据

1)查看分区数

show partitions dept_partition;

2)查询指定分区

select * from dept_partition where dt='2022-06-14';

3)增加/删除分区

alter table dept_partition add partition(dt='2022-06-19');
alter table dept_partition drop partition(dt='2022-06-19');

ps.也可以直接在liunx端输入命令增加分区

-- 将18号分区复制一份,命名为13号分区
hadoop fs -cp /user/hive/warehouse/dept_partition/dt=2022-06-18 
/user/hive/warehouse/dept_partition/dt=2022-06-13

ps..如果直接在网页端新建文件夹,终端不会显示新建的分区,必须修复

msck repair table dept_partition;

3. 二级分区表

就是大文件夹套小文件夹

3.1 创建分区表

create table dept_partition2(
    deptno int,
    dname string,
    loc int
)
partitioned by (month string, day string)  // month为父目录,day为子目录
row format delimited fields terminated by '\t';

3.2 插入数据

load data local inpath '/opt/module/hive/datas/dept.txt' 
into table dept_partition2 partition(month='2022-06', day='15');
insert into dept_partition2 partition(month='2022-06',day='15')
select deptno, dname, loc from dept;

4.动态分区

普通数据无法直接转化为分区表,只能先新建新的分区表,再将旧数据插入这个新的分区表

1)创建分区表

create table emp_par(
    empno int,
    ename string,
    job string,
    salary decimal(16,2)
) partitioned by (deptno int)
row format delimited fields terminated by '\t';

2)然后将数据插入这张分区表

方式一:一个分区一个分区的插入

insert into emp_par partition(deptno=10)
select empno,ename,job,sal from emp where deptno=10;  //然后是11,12...

方式二:动态分区一次搞定

insert overwrite table emp_par   // 不用指定分区
select empno,ename,job,sal,deptno from emp;  //直接把deptno写到这里

5.分桶表

核心语句:

clustered by (a) sorted by (b) into 4 buckets //按照a分了4个桶,桶内按照b排序

5.1 新建分桶表

create table stu_buck(
    id int,
    name string
)
clustered by (id) sorted by (id) into 4 buckets  //根据id的hash值按4取模
row format delimited fields terminated by '\t';

查看

select * from stu_buk

MySQL分区表和分桶表的操作详解

可以发现分成了四个区

ps.分桶的意义:在取数的时候可以直接数据定位所在的桶,然后方便遍历,查询更高效

5.2 插入数据

load data inpath '/datas/student.txt' into table stu_buck;

ps.不能用本地模式,必须用hdfs模式

insert overwrite table stu_buck
select id,name from stu_ex;

5.3 既分区有分桶

create table stu_par_buck(
    id int,
    name string
)
partitioned by (dt string)  // 先创建文件夹
clustered by (id) sorted by (id desc) into 4 buckets  //然后内部分桶
row format delimited fields terminated by '\t';

插入数据:

与普通的一样

insert into stu_par_buck
select id, name, '2022-06-14' from stu_ex;

6 分区与分桶的区别

主键适合拿来分桶,而普通的列适合拿来分区(一般为日期)

分桶是文件,分区是文件夹

到此这篇关于Mysql分区表和分桶表的操作详解的文章就介绍到这了,更多相关mysql分区表和分桶表内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

您可能感兴趣的文档:

--结束END--

本文标题: MySQL分区表和分桶表的操作详解

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

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

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

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

下载Word文档
猜你喜欢
  • MySQL分区表和分桶表的操作详解
    目录1.创建分区表2.增删改查操作2.1 插入数据2.2 操作数据3. 二级分区表3.1 创建分区表3.2 插入数据4.动态分区5.分桶表5.1 新建分桶表5.2 插入数据5.3 既分区有分桶6 分区与分桶的区别1.创建...
    99+
    2023-05-12
    MySQL分区表和分桶表 MySQL分区表 MySQL分桶表
  • hive分区表和分桶表有什么区别
    Hive分区表和分桶表是两种数据存储和管理的方式,有以下区别: 分区表:在Hive中,分区表是按照指定的列值进行分区存储数据的表...
    99+
    2024-03-01
    hive
  • Mysql表分区的操作方法
    这篇文章主要讲解了“Mysql表分区的操作方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Mysql表分区的操作方法”吧! M...
    99+
    2024-04-02
  • Hive中的存储桶表和分区表有什么区别
    Hive中的存储桶表和分区表有以下区别: 存储桶表: 存储桶表是一种对数据进行水平分割和组织的存储方式。 存储桶表将数据根据指...
    99+
    2024-04-02
  • Oracle分区表的move操作
    关于分区表的move操作还是很值得深究的一个问题。如果分区表中含有lob字段,难度还会加大。对于普通的表而言,做move操作室理所当然,oracle提供的方式很直接快捷。当然了这个命令也不是高可用的范畴。但...
    99+
    2024-04-02
  • MySql分表、分库、分片和分区知识深入详解
    一、前言 数据库的数据量达到一定程度之后,为避免带来系统性能上的瓶颈。需要进行数据的处理,采用的手段是分区、分片、分库、分表。 二、分片(类似分库) 分片是把数据库横向扩展(Scal...
    99+
    2024-04-02
  • Oracle表分区详解
    目录一、 表空间及分区表的概念表空间:分区表:二、表分区的具体作用什么时候使用分区表:三、表分区的优缺点优点:缺点:四、表分区的几种类型及操作方法1、范围分区:2、列表分区:3、散列...
    99+
    2024-04-02
  • oracle表分区的概念及操作
    oracle表分区详解 1.表空间及分区表的概念 表空间:   是一个或多个数据文件的集合,所有的数据对象都存放在指定的表空间中,但主要存放的是表, 所以称作表空间。 分区表: 当表...
    99+
    2024-04-02
  • MySQL-分库分表详解(七)
    ♥️作者:小刘在C站 ♥️个人主页: 小刘主页  ♥️努力不一定有回报,但一定会有收获加油!一起努力,共赴美好人生! ♥️学习两年总结出的运维经验,以及思科模拟器全套网络实验教程。专栏:云计算技术 ♥️小刘私信可以随便问,只要会...
    99+
    2023-09-02
    mysql 数据库
  • MySql中的分表、分库、分片和分区的分析
    本篇内容介绍了“MySql中的分表、分库、分片和分区的分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!&...
    99+
    2024-04-02
  • mysql分区表:日期分区
    mysql分区表:日期分区 1.创建分区表2.查看分区3.添加分区4.存储过程:分区删除与创建5.事件定时6.触发器设计:子表每插入一行,总表获得一行7.创建索引8.添加枚举型字段 1.创建分区表 CREATE TAB...
    99+
    2023-08-21
    mysql 数据库
  • mysql分表分区的示例分析
    这篇文章给大家介绍mysql分表分区的示例分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。面对当今大数据存储,设想当mysql中一个表的总记录超过1000W,会出现性能的大幅度下降吗...
    99+
    2024-04-02
  • MySQL中的分区表和临时表是什么
    这篇文章主要为大家展示了“MySQL中的分区表和临时表是什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“MySQL中的分区表和临时表是什么”这篇文章吧。临时表...
    99+
    2024-04-02
  • MySQL中的表和区举例分析
    本篇内容主要讲解“MySQL中的表和区举例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL中的表和区举例分析”吧! My...
    99+
    2024-04-02
  • mysql 表分区的方式和实现
    1. mysql 表的分区方式 MySQL 提供了多种分区方式,以下是常见的几种分区方式: 范围分区(RANGE):按照某个连续的范围将数据分区,例如按照订单日期进行分区。在创建表时,可以使用 PARTITION BY RANGE 子句来设...
    99+
    2023-08-17
    mysql mysql 分区的方式 mysql 分区的实现样例
  • MySQL分库分表详情
    一、业务场景介绍 假设目前有一个电商系统使用的是MySQL,要设计大数据量存储、高并发、高性能可扩展的方案,数据库中有用户表。用户会非常多,并且要实现高扩展性,你会怎么去设计? OK...
    99+
    2024-04-02
  • MySQL 分区表设计
    MySQL 分区表设计 1、分区表设计方案 当设计 MySQL 分区表时,需要考虑以下几个方面:分区策略、分区字段、分区数量和分区函数。下面是一个详细的示例,展示了如何设计和执行分区表的增删改查操...
    99+
    2023-10-05
    mysql 数据库 分区表 sql
  • MySQL创建表操作命令分享
    目录一、表命令1.查看所有表2.创建表3.创建一个用户表二、MySQL支持的常用数据类型1.数字型2.字符串3.日期三、MySQL支持的常用约束四、存储引擎五、表命令(crud)1....
    99+
    2024-04-02
  • mysql分区表笔记
    mysql分区表    mysql分区表是一个独立的逻辑表,但是底层由多个物理字表组成。    对分区的请求,都会通过句柄对象转化成对存储引擎接口的调用。所以分区对于...
    99+
    2024-04-02
  • mysql表分区技术详细介绍
    1、概述     数据库单表到达一定量后,性能会有衰减,像mysql\sql server等犹为明显,所以需要把这些数据进行分区处理。同时有时候可能出现数据剥离什么的,分区...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作