当前位置: 首页 > news >正文

【SQL应知应会】表分区(一)• Oracle版

请添加图片描述

欢迎来到爱书不爱输的程序猿的博客, 本博客致力于知识分享,与更多的人进行学习交流

本文收录于SQL应知应会专栏,本专栏主要用于记录对于数据库的一些学习,有基础也有进阶,有MySQL也有Oracle

请添加图片描述

分区表 • Oracle版

  • 前言
  • 一、分区表
  • 1.什么是表分区
    • 1.1 分区的意义
    • 1.2 分区的作用
    • 1.3 表分区的方法
  • 2.创建分区表
    • 2.1 创建范围分区表
      • 2.1.1 基本语法
      • 2.1.2 示例
    • 2.2 创建列表分区表
      • 2.2.1 基本语法
      • 2.2.2 示例
  • 小结

前言

✅对于表分区这块内容,我们在MySQL方面已经有五篇内容了,大家可以去我的专栏SQL应知应会进行学习
🆗今天这篇内容开始Oracle的表分区,如果大家学习过前面MySQL的表分区的话,那么对于今天的内容是很轻松就可以学会的,当然,这并没有严格的学习顺序的安排,只是对于MySQL的表分区,我们花了大量的篇幅进行学习,大家可以根据自己的学习情况进行随意的选择学习顺序(无需有过多的顾虑)
✳️今天这篇Oracle,主要是对建立表分区进行了学习,比如创建范围分区表、创建列表分区表一系列知识点,其中有代码帮助大家去学习与理解,要 注意Oracle与MySQL的区别,在列表分区表就有所体现,大家可以自己在Navicar或者PL/SQL或者其他工具上进行代码的学习, 最好不要只看懂文章,只有多多练习,才能发现自己的错误并锻炼解决问题的能力。
希望文章的内容对大家有所帮助,如果有什么不足的地方,大家可以在评论区或者私信我,感谢大家的支持
💻那么,快拿出你的电脑,跟着文章一起学习起来吧

一、分区表

1.什么是表分区

  • 在oracle数据库中,当表中数据量达到GB级别时,为了方便对表中数据的管理,可以考虑将表进行分区。
  • 所谓分区就是将一个巨型表分成若干个独立的组成部分进行存储和管理,每个相对小的、可以独立管理的部分,称为原来表的分区。
  • 表分区后,可以对表的分区进行独立的存取和控制。
  • 每个分区都具有相同的逻辑属性,但物理属性可以不同

如 具有相同列、相同数据类型、相同约束等,但可以具有不同的存储参数、位于不同的表空间中

1.1 分区的意义

  • 学习多表关联的时候 两个表关联的时候,对于关联不上的数据使用null填充,这种关联相当于关联的时候还是要找A的每条数据都要去B里所有数据遍历一遍,效率较慢,常见的有些连接算法可以用,join也并不是A中的一条数据与B中所有数据关联
  • 如果有分区的话,是最明显的优化,分区与分区的数据进行关联,这种关联只能发生在等值关联,所以做SQL的等值判断效率是最高的,使用大于(>)、小于(<)、not in这些的效率都不是很高,而in或等值连接或者多加几个分区(让扫描到更少的分区来提升效率)

1.2 分区的作用

  • 增强可用性:如果表的某个分区出现故障,表在其他分区的数据仍然可用
  • 维 护 方 便:如果表的某个分区出现故障,需要修复数据,只修复该分区即可
    • 如运行时网络中断导致数据出问题
  • 均 衡 I/O:可以把不同的分区映射到磁盘以平衡I/O,改善整个系统性能
  • 改善查询性能:对分区对象的查询可以仅搜索自己关心的分区,提高检索速度

对巨型表进行分区具有下列优点:

  • 提高 数据的安全性,一个分区的损坏不影响其他分区中数据的正常使用;
  • 将表的各个分区存储在不同磁盘上,提高数据的并行操作能力
  • 简化数据的管理,可以将某些分区设置为不可用状态,某些分区设置为可用状态,某些分区设置为只读状态,某些分区设置为读/写状态;
  • 操作的透明性,对表进行分区并不影响操作数据的SQL语句。

1.3 表分区的方法

在oracle 11g数据库中,对表进行分区有多种方法。

  • 范围分区(range) :根据分区列值的范围对表进行分区,每条记录根据其分区列值所在的范围决定存储到哪个分区中
    • 范围分区是最常用的分区方法,特别适合根据日期进行分区的情况。
  • 列表分区(list):如果分区列的值不能划分范围(非数值类型或日期类型),同时分区列的取值是一个包含少数值的集合,可以采用列表分区,将特定分区列值的记录保存到特定分区中。
  • 散列分区:又称HASH分区,是采用基于分区列值的HASH算法,将数据均匀分布到指定的分区中
    • 一个记录到底分布到哪个分区是由HASH函数决定的。
  • 复合分区(range—list,range--hash):结合两种基本分区方法,先采用一个分区方法对表或索引进行分区,然后再采用另一个分区方法将分区再分成若干个子分区。每个分区的子分区都是数据的一个逻辑子集。
    • 复合分区包括范围-范围复合分区、范围-散列复合分区、范围-列表复合分区、列表-范围复合分区、列表-散列复合分区、列表-列表复合分区等多种分区方法

在oracle 11g数据库中,分区技术得到进一步的增强,引入了间隔分区、引用分区、基于虚拟列分区以及系统分区(system Partitioning)等多种分区方法

2.创建分区表

2.1 创建范围分区表

2.1.1 基本语法

使用带 partition by range子句的 create table 语句创建范围分区表

CREATE TABLE table(...)
PARTITION BY RANGE (column1[,column2,...])
(PARTITION partition1 VALUES LESS THAN(literal|MAXVALUE)
[TABLESPACE tablespace]
[,PARTITION partition2 VALUES LESS THAN(literal|MAXVALUE)
[TABLESPACE tablespace],...]
)
...# PARTITION BY RANGE : 指明采用范围分区方法
# column : 分区列,可以是单列分区,也可以是多列分区
# PARTITION partition1 : 设置分区名称
# VALUES LESS THAN : 设置分区列值得上界
# TABLESPACE : 设置分区对应的表空间## 分区列可以是多列,叫作组合字段分区
## 少用LESS THAN(MAXVALUE)

2.1.2 示例

  • 创建一个分区表,将学生信息根据其出生日期进行分区
    • 将1980年1月1日前出生的学生信息保存在ORCLTBS1表空间中
    • 将1980年1月1日到1990年1月1日出生的学生信息保存在ORCLTBS2表空间中
    • 将其他学生信息保存在ORCLTBS3表空间中
CREATE TABLE student_range(sno NUMBER(6) PRIMARY KEY,sname VARCHAR2(10),sage int,birthday DATE
)
PARTITION BY RANGE(birthday)
(PARTITION p1 VALUES LESS THAN(TO_DATE('1980-1-1','YYYY-MM-DD')) TABLESPACE ORCLTBS1,PARTITION p2 VALUES LESS THAN(TO_DATE('1990-1-1','YYYY-MM-DD')) TABLESPACE ORCLTBS2,PARTITION p1 VALUES LESS THAN(MAXVALUE) TABLESPACE ORCLTBS3,
);

创建分区表后,通过修改分区表的各个分区所在的表空间的状态,可以实现对表分区的不同操作
可以将表的部分分区设置为脱机状态或只读状态,但不影响其他分区的使用

2.2 创建列表分区表

2.2.1 基本语法

使用带 PARTITION BY LIST子句的 CREATE TABLE语句创建列表分区表,基本语法:

  • Oracle的list分区values后没有in
  • MySQL的list分区values后有in
CREATE TABLE table(...)
PARTITION BY LIST (column)
(PARTITION partition1 VALUES(literal|NULL|[DEFAULT])
[TABLESPACE tablespace]
[,PARTITION partition2 VALUES(literal|NULL|[DEFAULT])
[TABLESPACE tablespace],...]
)

2.2.2 示例

  • 创建一个分区表,将学生信息按性别不同进行分区
    • 男学生信息保存在ORCLTBS1表空间中
    • 将女学生信息保存在ORCLTBS2表空间中
CREATE TABLE student_list(sno NUMBER(6) PRIMARY KEY,sname VARCHAR2(10),sage int,sex VARCHAR(2) CHECK(sex in ('M','F'))
)
PARTITION BY LIST(sex)
(PARTITION student_male VALUES('M') TABLESPACE ORCLTBS1,PARTITION student_female VALUES('F') TABLESPACE ORCLTBS2
);

小结

😘感谢大家耐心的看完这篇文章,这篇文章是Oracle的表分区,对于SQL在表分区的知识点,我们在MySQL方面已经有五篇内容了,大家可以去我的专栏SQL应知应会 进行学习,如果大家觉着还算可以,那么就给个三连支持一下吧
🏡也可以加入我的社区一起学习呀
✅如果想要继续关注和学习后续更多的内容,那就关注一下爱书不爱输的程序猿吧,当然,如果大家还有什么其他方面的知识点想要看,可以在评论区或者私信我

请添加图片描述

相关文章:

【SQL应知应会】表分区(一)• Oracle版

欢迎来到爱书不爱输的程序猿的博客, 本博客致力于知识分享&#xff0c;与更多的人进行学习交流 本文收录于SQL应知应会专栏,本专栏主要用于记录对于数据库的一些学习&#xff0c;有基础也有进阶&#xff0c;有MySQL也有Oracle 分区表 • Oracle版 前言一、分区表1.什么是表分区…...

PostgreSQL 常用空间处理函数

1.OGC标准函数 管理函数&#xff1a; 添加几何字段 AddGeometryColumn(, , , , , ) 删除几何字段 DropGeometryColumn(, , ) 检查数据库几何字段并在geometry_columns中归档 Probe_Geometry_Columns() 给几何对象设置空间参考&#xff08;在通过一个范围做空间查询时常用&…...

ubuntu初始化/修改root密码

1.登录ubuntu后&#xff0c;使用sudo passwd root命令&#xff0c;进行root密码的初始化/修改&#xff0c;注&#xff1a;这里需要保证两次输入的密码都是同一个&#xff0c;才可成功 ubuntugt-ubuntu22-04-cmd-v1-0-32gb-100m:~/ocr$ sudo passwd root New password: Retype…...

【Linux后端服务器开发】select多路转接IO服务器

目录 一、高级IO 二、fcntl 三、select函数接口 四、select实现多路转接IO服务器 一、高级IO 在介绍五种IO模型之前&#xff0c;我们先讲解一个钓鱼例子。 有一条大河&#xff0c;河里有很多鱼&#xff0c;分布均匀。张三是一个钓鱼新手&#xff0c;他钓鱼的时候很紧张&a…...

支持向量机(iris)

代码&#xff1a; import pandas as pd from sklearn.preprocessing import StandardScaler from sklearn import svm import numpy as np# 定义每一列的属性 colnames [sepal-length, sepal-width, petal-length, petal-width, class] # 读取数据 iris pd.read_csv(data\\i…...

24考研数据结构-第二章:线性表

目录 第二章&#xff1a;线性表2.1线性表的定义&#xff08;逻辑结构&#xff09;2.2 线性表的基本操作&#xff08;运算&#xff09;2.3 线性表的物理/存储结构&#xff08;确定了才确定数据结构&#xff09;2.3.1 顺序表的定义2.3.1.1 静态分配2.3.1.2 动态分配2.3.1.3 mallo…...

Mybatis 动态 sql 是做什么的?都有哪些动态 sql?能简述动态 sql 的执行原理不?

OGNL表达式 OGNL&#xff0c;全称为Object-Graph Navigation Language&#xff0c;它是一个功能强大的表达式语言&#xff0c;用来获取和设置Java对象的属性&#xff0c;它旨在提供一个更高的更抽象的层次来对Java对象图进行导航。 OGNL表达式的基本单位是"导航链"&a…...

250_C++_typedef std::function<int(std::vector<int> vtBits)> fnChkSstStt

假设我们需要定义一个函数类型来表示一个能够计算整数向量中所有元素之和的函数。 首先,我们定义一个函数,它的参数是一个 std::vector 类型的整数向量,返回值是 int 类型,表示所有元素之和: int sumVectorElements(std::vector<int> vt) {int sum = 0;for (int n…...

无涯教程-jQuery - Transfer方法函数

Transfer 效果可以与effect()方法一起使用。这会将元素的轮廓转移到另一个元素。尝试可视化两个元素之间的交互时非常有用。 Transfer - 语法 selector.effect( "transfer", {arguments}, speed ); 这是所有参数的描述- className - 传输元素将收到的可选类名。…...

openGauss学习笔记-24 openGauss 简单数据管理-模式匹配操作符

文章目录 openGauss学习笔记-24 openGauss 简单数据管理-模式匹配操作符24.1 LIKE24.2 SIMILAR TO24.3 POSIX正则表达式 openGauss学习笔记-24 openGauss 简单数据管理-模式匹配操作符 数据库提供了三种独立的实现模式匹配的方法&#xff1a;SQL LIKE操作符、SIMILAR TO操作符…...

JAVASE---数据类型与变量

1. 字面常量 常量即程序运行期间&#xff0c;固定不变的量称为常量&#xff0c;比如&#xff1a;一个礼拜七天&#xff0c;一年12个月等。 public class Demo{ public static void main(String[] args){ System.Out.println("hello world!"); System.Out.println(…...

IDEA Groovy 脚本一键生成实体类<mybatisplus>

配置数据库&#xff08;mysql&#xff09; 一键生成&#xff08;右键点击table&#xff09; 配置自己的groovy脚本 import com.intellij.database.model.DasTable import com.intellij.database.util.Case import com.intellij.database.util.DasUtil import com.intellij.data…...

无涯教程-jQuery - Puff方法函数

吹气效果可以与show/hide/toggle一起使用。通过按比例放大元素并同时隐藏它&#xff0c;可以形成粉扑效果。 Puff - 语法 selector.hide|show|toggle( "puff", {arguments}, speed ); 这是所有参数的描述- model - 效果的模式。可以是"显…...

什么叫前后端分离?为什么需要前后端问题?解决了什么问题?

单体架构出现的问题 引出&#xff1a;来看一个单体项目架构的结构 通过上述可以看到单体架构主要存在以下几点问题&#xff1a; 开发人员同时负责前端和后端代码开发&#xff0c;分工不明确开发效率低前后端代码混合在一个工程中&#xff0c;不便于管理对开发人员要求高(既会前…...

Vector<T> 动态数组(随机访问迭代器)(答案)

答案如下 //------下面的代码是用来测试你的代码有没有问题的辅助代码,你无需关注------ #include <algorithm> #include <cstdlib> #include <iostream> #include <vector> #include <utility> using namespace std; struct Record { Record…...

Istio 故障注入与重试的实验

故障注入 Istio流量治理有故障注入的功能&#xff0c;在接收到用户请求程序的流量时&#xff0c;注入故障现象&#xff0c;例如注入HTTP请求错误&#xff0c;当有流量进入Sidecar时&#xff0c;直接返回一个500的错误请求代码。 通过故障注入可以用来测试整个应用程序的故障恢…...

Java设计模式-中介者模式

中介者模式 1.中介者模式含义 中介者模式&#xff0c;就是用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地互相引用&#xff0c;从而使其耦合松散&#xff0c;而且可以独立的改变它们之间的交互。 其实中介者模式很简单的&#xff0c;就像它的名字一样&a…...

OpenCV实现高斯模糊加水印

# coding:utf-8 # Email: wangguisendonews.com # Time: 2023/4/21 10:07 # File: utils.pyimport cv2 import PIL from PIL import Image import numpy as np from watermarker.marker import add_mark, im_add_mark import matplotlib.pyplot as plt# PIL Image转换成OpenCV格…...

JMeter 怎么查看 TPS 数据教程,简单易懂

TPS 是软件测试结果的测量单位。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时&#xff0c;收到服务器响应后结束计时&#xff0c;以此来计算使用的时间和完成的事务个数。在 JMeter 中&#xff0c;我们可以使用以下方法查看 T…...

2023年的深度学习入门指南(19) - LLaMA 2源码解析

2023年的深度学习入门指南(19) - LLaMA 2源码解析 上一节我们学习了LLaMA 2的补全和聊天两种API的使用方法。本节我们来看看LLaMA 2的源码。 补全函数text_completion源码解析 上一节我们讲了LLaMA 2的编程方法。我们来复习一下&#xff1a; generator Llama.build(ckpt_di…...

慕课网Go-2.数组、slice、map、list

数组 package mainimport "fmt"func main() {var course1 [3]stringcourse1[0] "go"course1[1] "grpc"course1[2] "gin"for _, value : range course1 {fmt.Println(value)}course2 : [3]string{2: "grpc"}fmt.Println(…...

Django的Rest framework搭建自定义授权登录

系列文章目录 提示&#xff1a;阅读本章之前&#xff0c;请先阅读目录 文章目录 系列文章目录一、前言User模型User的viewsUser的serializersutils的md5加密自定义认证方法配置路由总路由分路由rest的配置 一、前言 之前的文章有写过通过jwt认证的文章&#xff0c;今天这一篇是…...

01 矩阵(力扣)多源广度优先搜索 JAVA

给定一个由 0 和 1 组成的矩阵 mat &#xff0c;请输出一个大小相同的矩阵&#xff0c;其中每一个格子是 mat 中对应位置元素到最近的 0 的距离。 两个相邻元素间的距离为 1 。 输入&#xff1a;mat [[0,0,0],[0,1,0],[0,0,0]] 输出&#xff1a;[[0,0,0],[0,1,0],[0,0,0]] 输入…...

怎么绘制简爱思维导图?用这个工具绘制很简单

怎么绘制简爱思维导图&#xff1f;绘制思维导图是一项非常有用的技能&#xff0c;有助于梳理思路、整理知识、更好地理解和记忆信息。因此&#xff0c;无论你是学生、教师、工程师、项目经理或者只是想要更好地组织自己的想法&#xff0c;学会绘制思维导图都是非常有益的。下面…...

EC200U-CN学习(三)

EC200U系列内置丰富的网络协议&#xff0c;集成多个工业标准接口&#xff0c;并支持多种驱动和软件功能&#xff08;适用于Windows 7/8/8.1/10、Linux和Android等操作系统下的USB驱动&#xff09;&#xff0c;极大地拓展了其在M2M领域的应用范围&#xff0c;如POS、POC、ETC、共…...

【windows】连接共享打印机提示:0x0000011B

【问题现象】 添加共享打印机的时候&#xff0c; 提示错误&#xff1a;0x0000011B。 【解决方法】 按winr键&#xff0c;在运行输入regedit 然后在注册表中找到路径&#xff1a; 计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print 打开后&#xff0c;在右侧…...

基于“RWEQ+”集成技术在土壤风蚀模拟与风蚀模数估算、变化归因分析中的实践应用及SCI论文撰写

【查看原文】基于“RWEQ”集成技术在土壤风蚀模拟与风蚀模数估算、变化归因分析中的实践应用及SCI论文撰写​ 土壤风蚀是一个全球性的环境问题。中国是世界上受土壤风蚀危害最严重的国家之一&#xff0c;土壤风蚀是中国干旱、半干旱及部分湿润地区土地荒漠化的首要过程。中国风…...

Flutter-基础Widget

Flutter页面-基础Widget 文章目录 Flutter页面-基础WidgetWidgetStateless WidgetStateful WidgetState生命周期 基础widget文本显示TextRichTextDefaultTextStyle 图片显示FlutterLogoIconImageIamge.assetImage.fileImage.networkImage.memory CircleAvatarFadeInImage 按钮R…...

【数据分析专栏之Python篇】二、Jupyer Notebook安装配置及基本使用

文章目录 前言一、Jupter Notebook是什么1.1 简介1.2 组成部分1.3 Jupyter Notebook的主要特点 二、为什么使用Jupyter Notebook?三、安装四、Jupyter Notebok配置4.1 基本配置4.2 配置开机自启与后台运行4.3 开启代码自动补全 五、两种键盘输入模式5.1 编辑模式5.2 命令模式5…...

ubuntu22.04 DNSSEC(加密DNS服务) configuration

/etx/systemd/resolved.conf是ubuntu下DNS解析服务配置文件&#xff0c;systemd为ubuntu下system and service配置目录 step 1——修改resolved.conf参数 管理员权限打开 /systemd/resolved.conf sudo nano /etc/systemd/resolved.conf修改如下&#xff1a; # This file i…...

wordpress 主题js/搜索引擎大全排行榜

js受制于单个页面&#xff0c;用ifream框架做web系统&#xff0c;会遇到角色切换菜单刷新的问题&#xff0c;我就来讲一下我的思路&#xff1a; 用户登录时将用户角色放入session中&#xff0c;以角色id为key,权限为值&#xff0c;角色切换时将相应角色id传入后台&#xff0c;取…...

wordpress登陆后查看/百度应用市场app下载

正点原子开拓者FPGA开发板上自带了一枚无源蜂鸣器&#xff0c;本篇将记录如何通过按键来控制蜂鸣器的开关。 功能描述 初始蜂鸣器不响&#xff0c;按键按一下蜂鸣器开始响&#xff0c;再按一下蜂鸣器停止。 模块结构 本次采用了三个模块&#xff0c;一个顶层模块&#xff0c;…...

门户网站开发过程/百度客服人工服务电话

将windos环境下的ssh公钥放到服务器上就可以 没有公钥就生成 $ ssh-keygen -t rsa -b 4096写入到服务器端authorized_keys文件里(没有就自己创建)...

做一元购网站 要多少钱/百度双十一活动

mysql 安装双击d:\websoft\mysql-essential-5.1.63-win32.msi 就开始安装了 看图操作出现上面的界面&#xff0c;不要点cancel 那是取消&#xff0c; 等等选择“custom”然后点“next” 出现下面的界面这个是选择mysql 安装的位置&#xff0c;默认在c盘&#xff0c;我们点“cha…...

做自己看视频的网站/免费域名服务器

2019独角兽企业重金招聘Python工程师标准>>> Fiori里的busy dialog有两种表现形式&#xff0c;一种是下图里的花朵形状&#xff0c;由5个不断旋转的花瓣组成。另一种是下图的3/4个圆环不断旋转的效果。 关于前者的效果&#xff0c;可以看我制作的这个视频。这个视频…...

网站建设烟台/北京疫情太严重了

出品丨Docker公司&#xff08;ID&#xff1a;docker-cn&#xff09;编译丨小东每周一、三、五 与您不见不散&#xff01; 早前&#xff0c;我们分享了一篇名为“镜像扫描基于策略的镜像提升”&#xff0c;打造安全的 Kubernetes 供应链&#xff01;的文章&#xff0c;它主要介绍…...