Oracle 表分区简介
目录
- 一. 前置知识
- 1.1 什么是表分区
- 1.2 表分区的优势
- 1.3 表分区的使用条件
- 二. 表分区的方法
- 2.1 范围分区(Range Partitioning)
- 2.2 列表分区(List Partitioning)
- 2.3 哈希分区(Hash Partitioning)
- 2.4 复合分区(Composite Partitioning)
- 三. 表分区的查看
- 3.1 分区信息的查看
- 3.2 分区数据的查看
- 四. 分区表的维护
- 4.1 分区的添加与删除
- 4.2 分区的合并与拆分
- 4.3 重命名分区
- 4.4 分区交换
- 4.5 其他操作
一. 前置知识
1.1 什么是表分区
表分区
是数据库中的一种技术,用于将一张大表的数据按一定的规则拆分成多个较小的物理存储单元
,这些物理存储单元被称为分区
(Partition)。
尽管数据被分布到不同的分区中,但从逻辑上,分区表仍然作为一个整体表进行访问。
1.2 表分区的优势
⏹易于管理:
- 管理更灵活:可以对某个分区单独执行备份、恢复、索引重建等操作。
- 删除数据更高效:可以直接删除整个分区,而无需删除每一行数据。
⏹数据分割:
- 数据被分配到多个分区中,每个分区可以独立存储在不同的表空间或磁盘上。
- 例如,按时间、区域、ID 等规则划分数据。
⏹性能优化:
- 查询和操作时可以通过 分区裁剪(Partition Pruning)减少扫描的数据量,从而提高查询效率。
- 分区表支持并行操作(Parallelism),多个分区可以同时被不同的进程访问或操作。
⏹提高存储利用率:
- 不同分区可以存储在不同的表空间或磁盘上,优化存储性能和分布。
1.3 表分区的使用条件
- 表大于2G;
- 对一个表并行进行DML操作;
- 为了平衡硬盘I/O,需将同一个表分区到不同的表空间,必须对表进行分区;
- 要将表的一部分设为只读状态,另一部分设为读写状态,需要对表进行分区;
- 要将表一部分设为可用状态,另一部分设为不可用状态,需要队标进行分区;
- 要将表中数据按照一定规则分散到不同的磁盘中去,需要对表进行分区;
二. 表分区的方法
2.1 范围分区(Range Partitioning)
⏹范围分区是根据分区列值的范围
对表进行分区,每条记录根据分区列值的范围分配到不同的分区表中。
常用于按照时间和日期分区的表。
partition by range
:指定使用范围分区partition sales_q1_2013
:指定分区的名称values less than
:指定分区内数据的存储范围tablespace TBS1
:指定该分区所对应的表空间,若不显示指定的话,则使用默认表空间
create table sale_by_range
(prod_id number, cust_id number,time_id date,channel_id char(1),promo_id number(6),quantity_sold number(3),amount_sold number
)
partition by range(time_id)
(-- 若 time_id < 2013-01-01 , 则数据分布到 sales_q1_2013 分区partition sales_q1_2013 values less than(TO_DATE('2013-01-01', 'YYYY-MM-DD')) tablespace TBS1,-- 若 2013-01-01 < time_id < 2016-04-01 , 则数据分布到 sales_q2_2016 分区partition sales_q2_2016 values less than(TO_DATE('2016-04-01', 'YYYY-MM-DD')) tablespace TBS2,partition sales_q3_2019 values less than(TO_DATE('2019-04-01', 'YYYY-MM-DD')) tablespace TBS3,partition sales_q4_2021 values less than(TO_DATE('2021-04-01', 'YYYY-MM-DD')) tablespace TBS4,-- 2021-04-01 < time_id , 则数据分布到 sales_q5_202X 分区partition sales_q5_202X values less than (MAXVALUE) tablespace TBS5
)
2.2 列表分区(List Partitioning)
⏹按离散值(列表)划分数据,适合按地区、类别等分类的数据。
partition otherprovince values(default)
:如果列值不符合其它分区记录的要求,保存在该分区表
create table sales_by_list
(dept number,deptname varchar(20),quarterly_sales number(10,2),province varchar(20)
)
partition by list(province)
(-- 广东、福建的存放在southeast分区表partition southeast values('guangdong','fujian') tablespace TBS1,-- 黑龙江、辽宁、吉林放在northeast分区表 partition northeast values('heilongjiang','liaoning','jilin') tablespace TBS2,-- 四川、云南、贵州放在southwest分区表partition southwest values('sichuan','yunnan','guizhou') tablespace TBS3,-- 其他省的放在otherprivince分区表partition otherprovince values(default) tablespace TBS4
)
2.3 哈希分区(Hash Partitioning)
⏹按哈希函数将数据均匀分布
到多个分区中。适合数据分布随机、访问均匀的场景。
- 在 Oracle 数据库中,哈希分区(Hash Partitioning) 的分区名称通常由系统自动生成(例如 SYS_P564、SYS_P565等)。
- 用户无法直接在建表语句中指定哈希分区的名称。
create table charge_fixed_work (charge_no number(20,0) not null primary key,atzt_no number(20,0) not null,charge_regst_busins_date varchar2(8) not null,charge_expct_date varchar2(8) not null,charge_regst_date varchar2(8) not null,charge_regst_time varchar2(8) not null,charge_proc_result_cd varchar2(8) not null
)
partition by hash (charge_no)
partitions 4
-- 指定4个分区存储在指定的表空间中
store in (tablespace1, tablespace2, tablespace3, tablespace4);
2.4 复合分区(Composite Partitioning)
⏹Oracle支持的6种复合分区方法:
- Range-Range
- Range-List
- Range-Hash
- List-Range
- List-List
- List-Hash
CREATE TABLE sales_by_range_list (dept NUMBER,deptname VARCHAR(20),time_id DATE,quarterly_sales NUMBER(10, 2),province VARCHAR(20)
)
-- 先使用范围分区
PARTITION BY RANGE (time_id)
-- 再使用列表分区进一步细化
SUBPARTITION BY LIST (province)
(-- 第一季度销售情况的分区,并指定表空间PARTITION sales_q1_2024 VALUES LESS THAN (TO_DATE('2024-03-01', 'YYYY-MM-DD')) TABLESPACE TBS1(-- 广东、福建的存放在 sales_q1_2024_southeast 分区表SUBPARTITION sales_q1_2024_southeast VALUES ('guangdong', 'fujian'),SUBPARTITION sales_q1_2024_northeast VALUES ('heilongjiang', 'liaoning', 'jilin'),SUBPARTITION sales_q1_2024_southwest VALUES ('sichuan', 'yunnan', 'guizhou'),SUBPARTITION sales_q1_2024_otherprovince VALUES (DEFAULT)),-- 第二季度销售情况PARTITION sales_q2_2024 VALUES LESS THAN (TO_DATE('2024-06-01', 'YYYY-MM-DD')) TABLESPACE TBS2(SUBPARTITION sales_q2_2024_southeast VALUES ('guangdong', 'fujian'),SUBPARTITION sales_q2_2024_northeast VALUES ('heilongjiang', 'liaoning', 'jilin'),SUBPARTITION sales_q2_2024_southwest VALUES ('sichuan', 'yunnan', 'guizhou'),SUBPARTITION sales_q2_2024_otherprovince VALUES (DEFAULT)),-- 第三季度销售情况PARTITION sales_q3_2024 VALUES LESS THAN (TO_DATE('2024-09-01', 'YYYY-MM-DD')) TABLESPACE TBS3(SUBPARTITION sales_q3_2024_southeast VALUES ('guangdong', 'fujian'),SUBPARTITION sales_q3_2024_northeast VALUES ('heilongjiang', 'liaoning', 'jilin'),SUBPARTITION sales_q3_2024_southwest VALUES ('sichuan', 'yunnan', 'guizhou'),SUBPARTITION sales_q3_2024_otherprovince VALUES (DEFAULT)),-- 第四季度销售情况PARTITION sales_q4_2024 VALUES LESS THAN (MAXVALUE) TABLESPACE TBS4(SUBPARTITION sales_q4_2024_southeast VALUES ('guangdong', 'fujian'),SUBPARTITION sales_q4_2024_northeast VALUES ('heilongjiang', 'liaoning', 'jilin'),SUBPARTITION sales_q4_2024_southwest VALUES ('sichuan', 'yunnan', 'guizhou'),SUBPARTITION sales_q4_2024_otherprovince VALUES (DEFAULT))
);
三. 表分区的查看
3.1 分区信息的查看
DBA_PART_TABLES
:查看数据库里面的全部分区表信息,需要具有DBA权限ALL_PART_TABLES
:查看当前用户可见的全部分区表信息;USER_PART_TABLES
:查看当前用户拥有的全部分区表信息;
⏹查看当前用户拥有的的全部分区表信息
SELECT * FROM USER_PART_TABLES;
⏹查询分区表信息
SELECT * FROM USER_TAB_PARTITIONS;
⏹查询子分区表信息
SELECT * FROM USER_TAB_SUBPARTITIONS;
3.2 分区数据的查看
⏹在向分区表插入数据时,我们最关心的就是数据是否按照我们的规划进入了各个分区表,例如向SALE_BY_RANGE
表中投入数据
INSERT INTO sale_by_range (prod_id, cust_id, time_id, channel_id, promo_id, quantity_sold, amount_sold) VALUES (1, 1, TO_DATE('2012-12-12', 'YYYY-MM-DD'), 'A', 1, 10, 100);
INSERT INTO sale_by_range (prod_id, cust_id, time_id, channel_id, promo_id, quantity_sold, amount_sold) VALUES (2, 2, TO_DATE('2013-02-15', 'YYYY-MM-DD'), 'B', 2, 20, 200);
INSERT INTO sale_by_range (prod_id, cust_id, time_id, channel_id, promo_id, quantity_sold, amount_sold) VALUES (3, 3, TO_DATE('2014-06-05', 'YYYY-MM-DD'), 'A', 3, 30, 300);
INSERT INTO sale_by_range (prod_id, cust_id, time_id, channel_id, promo_id, quantity_sold, amount_sold) VALUES (4, 4, TO_DATE('2016-05-01', 'YYYY-MM-DD'), 'B', 4, 40, 400);
INSERT INTO sale_by_range (prod_id, cust_id, time_id, channel_id, promo_id, quantity_sold, amount_sold) VALUES (5, 5, TO_DATE('2019-06-20', 'YYYY-MM-DD'), 'A', 5, 50, 500);
INSERT INTO sale_by_range (prod_id, cust_id, time_id, channel_id, promo_id, quantity_sold, amount_sold) VALUES (6, 6, TO_DATE('2021-05-15', 'YYYY-MM-DD'), 'B', 6, 60, 600);
INSERT INTO sale_by_range (prod_id, cust_id, time_id, channel_id, promo_id, quantity_sold, amount_sold) VALUES (7, 7, TO_DATE('2016-02-19', 'YYYY-MM-DD'), 'A', 7, 70, 700);
INSERT INTO sale_by_range (prod_id, cust_id, time_id, channel_id, promo_id, quantity_sold, amount_sold) VALUES (8, 8, TO_DATE('2021-07-10', 'YYYY-MM-DD'), 'B', 8, 80, 800);
INSERT INTO sale_by_range (prod_id, cust_id, time_id, channel_id, promo_id, quantity_sold, amount_sold) VALUES (9, 9, TO_DATE('2019-09-09', 'YYYY-MM-DD'), 'A', 9, 90, 900);
INSERT INTO sale_by_range (prod_id, cust_id, time_id, channel_id, promo_id, quantity_sold, amount_sold) VALUES (10, 10, TO_DATE('2021-01-01', 'YYYY-MM-DD'), 'B', 10, 100, 1000);
INSERT INTO sale_by_range (prod_id, cust_id, time_id, channel_id, promo_id, quantity_sold, amount_sold) VALUES (11, 11, TO_DATE('2012-12-25', 'YYYY-MM-DD'), 'A', 11, 110, 1100);
INSERT INTO sale_by_range (prod_id, cust_id, time_id, channel_id, promo_id, quantity_sold, amount_sold) VALUES (12, 12, TO_DATE('2013-03-10', 'YYYY-MM-DD'), 'B', 12, 120, 1200);
INSERT INTO sale_by_range (prod_id, cust_id, time_id, channel_id, promo_id, quantity_sold, amount_sold) VALUES (13, 13, TO_DATE('2015-07-20', 'YYYY-MM-DD'), 'A', 13, 130, 1300);
INSERT INTO sale_by_range (prod_id, cust_id, time_id, channel_id, promo_id, quantity_sold, amount_sold) VALUES (14, 14, TO_DATE('2016-11-22', 'YYYY-MM-DD'), 'B', 14, 140, 1400);
INSERT INTO sale_by_range (prod_id, cust_id, time_id, channel_id, promo_id, quantity_sold, amount_sold) VALUES (15, 15, TO_DATE('2018-03-15', 'YYYY-MM-DD'), 'A', 15, 150, 1500);
INSERT INTO sale_by_range (prod_id, cust_id, time_id, channel_id, promo_id, quantity_sold, amount_sold) VALUES (16, 16, TO_DATE('2020-06-17', 'YYYY-MM-DD'), 'B', 16, 160, 1600);
INSERT INTO sale_by_range (prod_id, cust_id, time_id, channel_id, promo_id, quantity_sold, amount_sold) VALUES (17, 17, TO_DATE('2019-05-02', 'YYYY-MM-DD'), 'A', 17, 170, 1700);
INSERT INTO sale_by_range (prod_id, cust_id, time_id, channel_id, promo_id, quantity_sold, amount_sold) VALUES (18, 18, TO_DATE('2020-12-20', 'YYYY-MM-DD'), 'B', 18, 180, 1800);
INSERT INTO sale_by_range (prod_id, cust_id, time_id, channel_id, promo_id, quantity_sold, amount_sold) VALUES (19, 19, TO_DATE('2020-08-10', 'YYYY-MM-DD'), 'A', 19, 190, 1900);
INSERT INTO sale_by_range (prod_id, cust_id, time_id, channel_id, promo_id, quantity_sold, amount_sold) VALUES (20, 20, TO_DATE('2021-02-14', 'YYYY-MM-DD'), 'B', 20, 200, 2000);
⏹若 2013-01-01 < time_id < 2016-04-01
, 则数据理论上会分布到 sales_q2_2016
分区
-- SELECT * FROM 表名 PARTITION(分区名);
SELECT * FROM SALE_BY_RANGE PARTITION(SALES_Q2_2016);
四. 分区表的维护
4.1 分区的添加与删除
⏹可以通过 ALTER TABLE
添加新的分区。通常是在范围分区表中,您会根据需要添加新的分区。
ALTER TABLE sales_by_range
ADD PARTITION sales_q6_2023 VALUES LESS THAN (TO_DATE('2023-07-01', 'YYYY-MM-DD'))
TABLESPACE TBS6;
⏹当某些分区数据不再需要时,可以删除相应的分区。
ALTER TABLE sales_by_range
DROP PARTITION sales_q1_2013;
4.2 分区的合并与拆分
⏹合并分区可以将多个分区的数据合并成一个分区,这对减少分区的数量或管理分区非常有用。
ALTER TABLE sales_by_range
MERGE PARTITIONS sales_q1_2013, sales_q2_2013
INTO PARTITION sales_q1_q2_2013;
⏹对于复合分区表,如果需要管理子分区,可以合并多个子分区。
ALTER TABLE sales_by_range
MERGE SUBPARTITIONS sales_q1_2024_southeast, sales_q1_2024_northeast
INTO SUBPARTITION sales_q1_2024_southeast_northeast;
⏹拆分分区用于将现有分区分成两个或更多的分区。这对于将过大的分区拆分为更小的分区非常有用。
ALTER TABLE sales_by_range
SPLIT PARTITION sales_q3_2019 AT (TO_DATE('2019-06-01', 'YYYY-MM-DD'))
INTO (PARTITION sales_q3_2019_part1,PARTITION sales_q3_2019_part2
);
4.3 重命名分区
⏹您可以重命名分区,以便更清楚地反映其数据的含义。
ALTER TABLE sales_by_range
RENAME PARTITION sales_q1_2024 TO sales_q1_2024_new;
4.4 分区交换
⏹将分区中的数据交换到其他表或分区。可以用来快速移动数据。
ALTER TABLE sales_by_range
EXCHANGE PARTITION sales_q1_2013
WITH TABLE temp_sales_q1_2013;
4.5 其他操作
⏹分区可以禁用,以便不再插入新数据,或启用以恢复操作。
ALTER TABLE sales_by_range DISABLE PARTITION sales_q4_2021;
⏹定期监控分区表的性能和空间使用情况。可以使用查询查看分区表的分区状态。
SELECT TABLE_NAME, PARTITION_NAME, HIGH_VALUE, TABLESPACE_NAME
FROM DBA_TAB_PARTITIONS
WHERE TABLE_NAME = 'SALES_BY_RANGE';
⏹使用分区表时,定期对数据进行压缩(如针对历史数据)可以节省空间。压缩可以在分区级别进行。
ALTER TABLE sales_by_range MOVE PARTITION sales_q1_2013 TABLESPACE TBS1 COMPRESS FOR ALL OPERATIONS;
⏹重新组织分区表以提高查询性能或释放空间。这包括重新排序和重新分配存储空间。
ALTER TABLE sales_by_range REORGANIZE PARTITION sales_q2_2024;
⏹定期检查分区表的健康状态,并对损坏的分区进行修复。
SELECT * FROM DBA_TAB_PARTITIONS WHERE TABLE_NAME = 'SALES_BY_RANGE';-- 若有问题,可以使用以下语句修复:
ALTER TABLE sales_by_range RECOVER PARTITION sales_q3_2019;
相关文章:
![](https://i-blog.csdnimg.cn/direct/a28104572f534f1fa0e7405c54e3e211.png)
Oracle 表分区简介
目录 一. 前置知识1.1 什么是表分区1.2 表分区的优势1.3 表分区的使用条件 二. 表分区的方法2.1 范围分区(Range Partitioning)2.2 列表分区(List Partitioning)2.3 哈希分区(Hash Partitioning)2.4 复合分…...
![](https://i-blog.csdnimg.cn/direct/9a1c76d4af97452f9d507c66553204cf.png)
多并发发短信处理(头条项目-07)
1 pipeline操作 Redis数据库 Redis 的 C/S 架构: 基于客户端-服务端模型以及请求/响应协议的 TCP服务。客户端向服务端发送⼀个查询请求,并监听Socket返回。通常是以 阻塞模式,等待服务端响应。服务端处理命令,并将结果返回给客…...
![](https://www.ngui.cc/images/no-images.jpg)
网络编程的进程查看连接描述符信息等
一.查看当前进程的socket对应的fd信息 1. lsof lsof(List Open Files)命令可以列出系统中所有打开的文件的信息,包括 socket。 用法 要查看特定进程的 socket 信息,可以使用以下命令: lsof -p <pid> | grep…...
![](https://www.ngui.cc/images/no-images.jpg)
ChatGPT API快速搭建自己的第一个应用—文章摘要(单轮对话应用)
使用ChatGPT API快速搭建自己的第一个应用 1 安装库2 设置与导入3 文章摘要(单轮对话应用)3.1 任务简介:3.2 初始化3.3 点击发送3.4 保存3.5 检查并打印你的结果1 安装库 !pip install gradiogradio 是一个用于快速搭建交互式用户界面的 Python 库,特别适合展示机器学习模…...
![](https://i-blog.csdnimg.cn/img_convert/baf0774baba64cd329b7829a1d920f97.png)
【01】AE特效开发制作特技-Adobe After Effects-AE特效制作快速入门-制作飞机,子弹,爆炸特效以及导出png序列图-优雅草央千澈
【01】AE特效开发制作特技-Adobe After Effects-AE特效制作快速入门-制作飞机,子弹,爆炸特效以及导出png序列图-优雅草央千澈 开发背景 优雅草央千澈所有的合集,系列文章可能是不太适合完全初学者的,因为课程不会非常细致的系统…...
![](https://i-blog.csdnimg.cn/direct/3818b2e9bf3e4fa585d6add1c7202eb9.png)
软件测试预备知识④—NTFS权限管理、磁盘配额与文件共享
在软件测试的实际环境搭建与管理过程中,了解和掌握NTFS权限管理、磁盘配额以及文件共享等知识至关重要。这些功能不仅影响系统的安全性和稳定性,还对测试数据的存储、访问以及多用户协作测试有着深远的影响。 一、NTFS权限管理 1.1 NTFS简介 NTFS&am…...
![](https://i-blog.csdnimg.cn/direct/5ff9cf3729634a2686249308321a8cd2.png)
CI/CD 流水线
CI/CD 流水线 CI 与 CD 的边界CI 持续集成CD(持续交付/持续部署)自动化流程示例: Jenkins 引入到 CI/CD 流程在本地或服务器上安装 Jenkins。配置 Jenkins 环境流程设计CI 阶段:Jenkins 流水线实现CD 阶段:Jenkins 流水…...
![](https://www.ngui.cc/images/no-images.jpg)
【python3】 sqlite格式的db文件获得所有表和数据
【python3】 sqlite格式的db文件获得所有表和数据 1.背景2.代码3.解析1.背景 SQLite 格式的 .db 文件就是一个包含 SQLite 数据库的文件。 SQLite 格式的 .db 文件通常存储的是一个关系型数据库。 SQLite广泛用于应用程序、移动设备、浏览器等场景。它将整个数据库存储在一个文…...
![](https://i-blog.csdnimg.cn/img_convert/6d978ad0454243c3df7fe73859a00c38.png)
【灵码助力安全3】——利用通义灵码辅助智能合约漏洞检测的尝试
前言 随着区块链技术的快速发展,智能合约作为去中心化应用(DApps)的核心组件,其重要性日益凸显。然而,智能合约的安全问题一直是制约区块链技术广泛应用的关键因素之一。由于智能合约代码一旦部署就难以更改…...
![](https://i-blog.csdnimg.cn/img_convert/8d5b7d215a7aefa9b5c1465e33c44cb4.png)
openEuler 22.04使用yum源最快速度部署k8s 1.20集群
本文目的 openEuler的官方源里有kubernetes 1.20,使用yum源安装是最快部署一个k8s集群的办法 硬件环境 主机名系统架构ipmasteropenEuler release 22.03 (LTS-SP2)arm192.168.3.11edgeopenEuler release 22.03 (LTS-SP2)arm192.168.3.12deviceopenEuler release 22.…...
![](https://www.ngui.cc/images/no-images.jpg)
Docker Compose 教程
Docker Compose 是一个 Docker 容器的依赖管理工具。 例如我们一个服务需要依赖到多个 Docker 容器,那么使用 Docker Compose 这个工具就能很方便的帮助我们管理。 Docker Compose 通过配置文件 .yml。 定义了所有容器的依赖关系。 然后我们只需把我们想要的 Docke…...
![](https://i-blog.csdnimg.cn/direct/33d610274f6c44b885a322ee86157fc0.jpeg#pic_center)
opencv的NLM去噪算法
NLM(Non-Local Means)去噪算法是一种基于图像块(patch)相似性的去噪方法。其基本原理是: 图像块相似性:算法首先定义了一个搜索窗口(search window),然后在该窗口内寻找…...
![](https://www.ngui.cc/images/no-images.jpg)
scala基础学习_方法函数
文章目录 方法与函数函数(又称函数值/匿名函数)定义方法注意 单参数函数多参数函数函数作为参数传递 方法将方法转换为函数方法的返回值总结 方法与函数 函数(又称函数值/匿名函数) 定义在任何地方:函数可以定义在类…...
![](https://i-blog.csdnimg.cn/direct/6ba7efe42b62420289a9fcc224c28161.png)
Android车机DIY开发之软件篇(八)单独编译
Android车机DIY开发之软件篇(八)单独编译 1.CarLauncher单独编译 CarLauncher源码位于 packages/apps/Car/Launcher 用Eclipse ADT 谷歌定制版编译而成,.mk .bp编译 Android13目录如下: alientekalientek:~/packages/apps/Car$ ls Calendar …...
![](https://www.ngui.cc/images/no-images.jpg)
【Bug】报错信息:Required request body is missing(包含五种详细解决方案)
大家好,我是摇光~ 遇到“Required request body is missing”错误通常意味着服务器期望在HTTP请求中包含一个请求体(body),但是实际上并没有收到。 例如: 当你在使用网页或应用程序的后台(比如一个网站或手…...
![](https://www.ngui.cc/images/no-images.jpg)
Docker 专栏 —— Dockerfile 指令详解
文章目录 ADD 复制文件COPY 复制文件ARG 设置构建参数CMD 容器启动命令ENTRYPOINT ⼊⼝点ENV 设置环境变量EXPOSE 声明暴露的端⼝FROM 指定基础镜像LABEL 为镜像添加元数据MAINTAINER 指定维护者的信息RUN 执⾏命令USER 设置⽤户VOLUME 指定挂载点WORKDIR 指定⼯作⽬录 ADD 复制…...
![](https://i-blog.csdnimg.cn/direct/5bff7c98516346619a277aafb9dd0fa3.png)
Spring Boot 项目自定义加解密实现配置文件的加密
在Spring Boot项目中, 可以结合Jasypt 快速实现对配置文件中的部分属性进行加密。 完整的介绍参照: Spring Boot Jasypt 实现application.yml 属性加密的快速示例 但是作为一个技术强迫症,总是想着从底层开始实现属性的加解密,…...
![](https://i-blog.csdnimg.cn/direct/2507617e04814969801452122fc2d22a.png)
在ubuntu下对NFS做性能测试
安装NFS 首先,安装服务 sudo apt update sudo apt install nfs-kernel-server然后创建共享文件夹 # 请自定义你自己的共享目录 sudo mkdir -p /exports/nfs4/homes sudo chmod -R 777 /exports/nfs4/homes# 这个可以根据no_root_squash标致选择设置。 # 如果不设…...
![](https://www.ngui.cc/images/no-images.jpg)
Spring-Cloud-Gateway-Samples,nacos为注册中心,负载均衡
背景:本想找个简单例子看下,无奈版本依赖太过复杂,花了点时间。记录下吧 使用Spring Cloud Gateway作为网关服务,Nacos作为注册中心,实现对子服务的负载均衡访问。简单例子。 一、gateway-main-nacos服务端ÿ…...
![](https://i-blog.csdnimg.cn/img_convert/c50eb7e1cc9b01c6d387f741a1f4087f.png)
StarRocks Awards 2024 年度贡献人物
在过去一年,StarRocks 在 Lakehouse 与 AI 等关键领域取得了显著进步,其卓越的产品功能极大地简化和提升了数据分析的效率,使得"One Data,All Analytics" 的愿景变得更加触手可及。 虽然实现这一目标的道路充满挑战且漫…...
Autoencoder(李宏毅)机器学习 2023 Spring HW8 (Boss Baseline)
1. Autoencoder 简介 Autoencoder是一种用于学习数据高效压缩表示的人工神经网络。它由两个主要部分组成: Encoder 编码器将输入数据映射到一个更小的、低维空间中的压缩表示,这个空间通常称为latent space或bottleneck。 这一过程可以看作是数据压缩,去除冗余信息,仅保留…...
![](https://www.ngui.cc/images/no-images.jpg)
深入探索 ScottPlot.WPF:在 Windows 桌面应用中绘制精美图表的利器
一、ScottPlot.WPF 简介 ScottPlot.WPF 是基于 ScottPlot 绘图库专门为 Windows Presentation Foundation (WPF) 框架量身定制的强大绘图组件。它无缝集成到 WPF 应用程序中,为开发者提供了一种简洁、高效的方式来可视化数据,无论是科学研究中的实验数据展示、金融领域的行情…...
![](https://www.ngui.cc/images/no-images.jpg)
React中的useMemo 和 useEffect 哪个先执行?
在 React 组件的渲染过程中,useMemo 和 useEffect 的执行顺序是不同的。具体来说: useMemo 先执行:useMemo 是在 渲染阶段 执行的,它的作用是缓存计算结果,确保在渲染过程中可以直接使用缓存的值。 useEffect 后执行&…...
![](https://i-blog.csdnimg.cn/direct/f107a4e81b2c47dcafaad567db85ed27.png#pic_center)
错误修改系列---基于RNN模型的心脏病预测(pytorch实现)
前言 前几天发布了pytorch实现,TensorFlow实现为:基于RNN模型的心脏病预测(tensorflow实现),但是一处繁琐地方 一处错误,这篇文章进行修改,修改效果还是好了不少;源文章为:基于RNN模型的心脏病…...
![](https://i-blog.csdnimg.cn/img_convert/974577131340fc756e4b48ac557c875f.jpeg)
Table-Augmented Generation(TAG):Text2SQL与RAG的升级与超越
当下AI与数据库的融合已成为推动数据管理和分析领域发展的重要力量。传统的数据库查询方式,如结构化查询语言(SQL),要求用户具备专业的数据库知识,这无疑限制了非专业人士对数据的访问和利用。为了打破这一壁垒&#x…...
![](https://www.ngui.cc/images/no-images.jpg)
Stable Diffusion本地部署教程(附安装包)
想使用Stable Diffusion需要的环境有哪些呢? python3.10.11(至少也得3.10.6以上):依赖python环境NVIDIA:GPUgit:从github上下载包(可选,由于我已提供安装包,你可以不用git)Stable Diffusion安装包工具包: NVIDIA:https://developer.nvidia.com/cuda-toolkit-archiv…...
![](https://i-blog.csdnimg.cn/direct/200af923c7fe47888ed27685a8e598a7.jpeg)
【物联网原理与运用】知识点总结(上)
目录 名词解释汇总 第一章 物联网概述 1.1物联网的基本概念及演进 1.2 物联网的内涵 1.3 物联网的特性——泛在性 1.4 物联网的基本特征与属性(五大功能域) 1.5 物联网的体系结构 1.6 物联网的关键技术 1.7 物联网的应用领域 第二章 感知与识别技术 2.1 …...
![](https://i-blog.csdnimg.cn/img_convert/004912d07814c27c009f041edd4283d2.webp?x-oss-process=image/format,png)
JuiceFS 2024:开源与商业并进,迈向 AI 原生时代
即将过去的 2024 年,是 JuiceFS 开源版本推出的第 4 年,企业版的第 8 个年头。回顾过去这一年,JuiceFS 社区版依旧保持着快速成长的势头,GitHub 星标突破 11.1K,各项使用指标增长均超过 100%,其中文件系统总…...
![](https://i-blog.csdnimg.cn/blog_migrate/415f4d65e495aff9ab45153a92afbc96.png)
C#,动态规划问题中基于单词搜索树(Trie Tree)的单词断句分词( Word Breaker)算法与源代码
1 分词 分词是自然语言处理的基础,分词准确度直接决定了后面的词性标注、句法分析、词向量以及文本分析的质量。英文语句使用空格将单词进行分隔,除了某些特定词,如how many,New York等外,大部分情况下不需要考虑分词…...
![](https://i-blog.csdnimg.cn/direct/a0c5424f13e54785ba6c00cbb420ac6a.png)
计算机网络(六)应用层
6.1、应用层概述 我们在浏览器的地址中输入某个网站的域名后,就可以访问该网站的内容,这个就是万维网WWW应用,其相关的应用层协议为超文本传送协议HTTP 用户在浏览器地址栏中输入的是“见名知意”的域名,而TCP/IP的网际层使用IP地…...
![](/images/no-images.jpg)
北京的网站制作公司/百度知道个人中心
电脑中右键不能新建word和excel文档怎么办开始,找到运行命,输入regedit,打开注册表。在左侧找到hkey_classes_root目录,并展开。首先,我们利用ctrlf快捷键,查找“docx”的位置,当然这里也可以自…...
![](/images/no-images.jpg)
用什么面板搭建Wordpress/seo搜索引擎优化步骤
类的继承 简单继承 多重继承 多态性和虚函数简单继承 1.派生类的定义 2.基类成员的引用和访问的规则 3.导出类的构造函数 4. 覆盖 作用域分辨 5.派生类的类型转换 6. 导出类的指针 简单继承 从一个类可以派生出新的类——派生类或导出类,也叫子类. 原来的类…...
怎么上传自己的做网站/seo助理
Java 导入 Java 导出 上传 前提准备2个Jar包: commons-fileupload-x.x.x.jar commons-io-x.x.x.jar 准备上传页面同步上传:<% page language"java" pageEncoding"UTF-8"%> <!DOCTYPE HTML> <html><head><…...
![](https://img-blog.csdnimg.cn/img_convert/7d53b26a7559674c37489d30e0a055c9.png)
wordpress采集工具/网络seo哈尔滨
第二种...
![](/images/no-images.jpg)
高安网站找工作做面点事/seo怎么优化排名
C大多数语句都以分号结束 表达式ival5,末尾加上分号变成表达式语句 1 空语句 最简单的语句是只有一个分号的空语句 常见情况是,空语句会使用在循环中 while (cin >> s && ! sought);// 空语句使用空语句应该加上注释,让读者…...
![](https://img-blog.csdnimg.cn/img_convert/5285d019160943233f96fed7fc06ed16.webp?x-oss-process=image/format,png)
网页添加兼容性站点/色盲测试图
基于阿里巴巴JAVA开发规范整理 一、命名风格 【强制】类名使用 UpperCamelCase 风格,必须遵从驼峰形式,但以下情形例外:DO / BO / DTO / VO / AO 正例:MarcoPolo / UserDO / XmlService / TcpUdpDeal / TaPromotion 反例ÿ…...