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

Oracle数据库数据编程SQL<00. 课外关注:rownum、rowid、level、row_number 对比详解与实战>

更多Oracle学习内容请查看:Oracle保姆级超详细系列教程_Tyler先森的博客-CSDN博客

目录

一、基本概念与区别

二、ROWNUM 详解与实战

1. 基本特性

2. 典型应用

2.1 分页查询(Oracle传统方式)

2.2 限制返回行数

2.3 随机抽样

3. 注意事项

三、ROWID 详解与实战

1. 组成结构

2. 典型应用

2.1 快速定位行

2.2 删除重复记录

2.3 表数据物理分布分析

3. 注意事项

四、LEVEL 详解与实战

1. 基本特性

2. 典型应用

2.1 组织架构查询

2.2 产品分类层次

2.3 路径枚举

3. 注意事项

五、ROW_NUMBER() 详解与实战

1. 基本语法

2. 典型应用

2.1 现代分页查询

2.2 分组排序

2.3 删除重复记录(保留最新)

3. 注意事项

六、对比分析与联合使用

1. 性能比较

2. 联合使用示例

2.1 高效分页组合

2.2 层次查询增强

2.3 物理分布分析

七、实战案例

案例1:员工数据清洗

案例2:产品分类报表

案例3:销售分析

八、常见问题解答


一、基本概念与区别

特性rownumrowidlevelrow_number()
类型伪列伪列伪列分析函数
作用结果集行号行物理地址层次查询级别分组排序行号
唯一性每次查询不同全局唯一同层次相同按分区排序唯一
持久性临时性永久性临时性临时性
修改影响结果集变化即变行物理位置不变则不变查询结构决定结果集变化即变

二、ROWNUM 详解与实战

1. 基本特性

  • 在查询结果返回前分配
  • 从1开始递增
  • 不可直接用于WHERE条件中大于比较

2. 典型应用

2.1 分页查询(Oracle传统方式)

-- 第一页(1-10条)
SELECT * FROM (SELECT a.*, ROWNUM rn FROM employees a WHERE ROWNUM <= 10
) WHERE rn >= 1;-- 第二页(11-20条)
SELECT * FROM (SELECT a.*, ROWNUM rn FROM employees a WHERE ROWNUM <= 20
) WHERE rn >= 11;

2.2 限制返回行数

-- 只返回前5条记录
SELECT * FROM employees WHERE ROWNUM <= 5;

2.3 随机抽样

-- 随机获取10条记录
SELECT * FROM (SELECT * FROM employees ORDER BY DBMS_RANDOM.VALUE
) WHERE ROWNUM <= 10;

3. 注意事项

  • 以下写法无法返回任何结果
    SELECT * FROM employees WHERE ROWNUM > 5;
  • 执行顺序:WHERE条件应用时ROWNUM尚未分配

三、ROWID 详解与实战

1. 组成结构

OOOOOO.FFF.BBBBBB.RRR

  • OOOOOO:数据对象ID
  • FFF:相对文件号
  • BBBBBB:块号
  • RRR:行号

2. 典型应用

2.1 快速定位行

-- 先获取ROWID
SELECT ROWID, employee_id, last_name 
FROM employees 
WHERE employee_id = 100;-- 使用ROWID直接访问(最快访问方式)
SELECT * FROM employees 
WHERE ROWID = 'AAAR5qAAFAAAADMAAA';

2.2 删除重复记录

-- 保留ROWID最小的记录
DELETE FROM employees
WHERE ROWID NOT IN (SELECT MIN(ROWID)FROM employeesGROUP BY employee_id, email  -- 根据业务确定唯一键
);

2.3 表数据物理分布分析

-- 分析数据物理分布
SELECT DBMS_ROWID.ROWID_OBJECT(ROWID) AS object_id,DBMS_ROWID.ROWID_RELATIVE_FNO(ROWID) AS file_no,DBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID) AS block_no,COUNT(*) AS rows_count
FROM employees
GROUP BY DBMS_ROWID.ROWID_OBJECT(ROWID),DBMS_ROWID.ROWID_RELATIVE_FNO(ROWID),DBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID)
ORDER BY rows_count DESC;

3. 注意事项

  • ROWID会随表移动(如exp/imp)而变化
  • 索引组织表(IOT)的ROWID是逻辑的

四、LEVEL 详解与实战

1. 基本特性

  • 专用于层次查询(CONNECT BY)
  • 从1开始(root节点)
  • 表示节点在树中的深度

2. 典型应用

2.1 组织架构查询

-- 查询员工及其所有下属
SELECT LEVEL,LPAD(' ', 2*(LEVEL-1)) || last_name AS org_chart,employee_id,manager_id
FROM employees
START WITH manager_id IS NULL
CONNECT BY PRIOR employee_id = manager_id;

2.2 产品分类层次

-- 多级分类查询
SELECT LEVEL,LPAD(' ', 3*(LEVEL-1)) || category_name AS category_tree
FROM product_categories
START WITH parent_id IS NULL
CONNECT BY PRIOR category_id = parent_id;

2.3 路径枚举

-- 显示完整路径
SELECT LEVEL,SYS_CONNECT_BY_PATH(last_name, '/') AS path
FROM employees
START WITH manager_id IS NULL
CONNECT BY PRIOR employee_id = manager_id;

3. 注意事项

  • 必须与CONNECT BY子句一起使用
  • 循环引用会导致ORA-01436错误,需加NOCYCLE

五、ROW_NUMBER() 详解与实战

1. 基本语法

ROW_NUMBER() OVER ([PARTITION BY expr1, expr2,...]ORDER BY expr1 [ASC|DESC], expr2 [ASC|DESC],...
)

2. 典型应用

2.1 现代分页查询

-- 更高效的分页(12c以上)
SELECT * FROM (SELECT e.*,ROW_NUMBER() OVER (ORDER BY hire_date) AS rnFROM employees e
)
WHERE rn BETWEEN 11 AND 20;

2.2 分组排序

-- 每个部门薪资前3名
SELECT * FROM (SELECT e.*,ROW_NUMBER() OVER (PARTITION BY department_id ORDER BY salary DESC) AS dept_rankFROM employees e
)
WHERE dept_rank <= 3;

2.3 删除重复记录(保留最新)

-- 保留每组ID最新的记录
DELETE FROM customer_orders
WHERE (order_id, customer_id) IN (SELECT order_id, customer_id FROM (SELECT order_id, customer_id,ROW_NUMBER() OVER (PARTITION BY customer_idORDER BY order_date DESC) AS rnFROM customer_orders)WHERE rn > 1
);

3. 注意事项

  • 是分析函数,不是伪列
  • 相同排序值会获得不同行号(与rank()/dense_rank()不同)

六、对比分析与联合使用

1. 性能比较

  • ROWID访问最快:直接物理定位
  • ROWNUM过滤最早:在结果集返回前应用
  • ROW_NUMBER最灵活:但需要完整排序

2. 联合使用示例

2.1 高效分页组合

SELECT * FROM (SELECT a.*, ROW_NUMBER() OVER (ORDER BY hire_date) AS rn,ROWNUM AS tmp_numFROM employees a
)
WHERE rn BETWEEN 21 AND 30;

2.2 层次查询增强

SELECT LEVEL,ROWID,ROW_NUMBER() OVER (PARTITION BY LEVEL ORDER BY last_name) AS name_rank,last_name
FROM employees
START WITH manager_id IS NULL
CONNECT BY PRIOR employee_id = manager_id;

2.3 物理分布分析

SELECT DBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID) AS block_no,COUNT(*) AS rows_per_block,ROW_NUMBER() OVER (ORDER BY COUNT(*) DESC) AS density_rank,ROWNUM AS report_line
FROM employees
GROUP BY DBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID)
HAVING COUNT(*) > 10;

七、实战案例

案例1:员工数据清洗

-- 找出重复邮箱的员工(使用ROW_NUMBER)
SELECT * FROM (SELECT e.*,ROW_NUMBER() OVER (PARTITION BY email ORDER BY employee_id) AS dup_flagFROM employees e
)
WHERE dup_flag > 1;-- 删除重复(保留ID最小的,使用ROWID)
DELETE FROM employees
WHERE ROWID NOT IN (SELECT MIN(ROWID)FROM employeesGROUP BY email
);

案例2:产品分类报表

-- 生成带缩进的分类树(LEVEL)
SELECT LEVEL,LPAD(' ', 4*(LEVEL-1)) || category_name AS category_tree,ROW_NUMBER() OVER (ORDER BY category_path) AS report_line
FROM (SELECT category_id,category_name,parent_id,SYS_CONNECT_BY_PATH(category_name, '/') AS category_pathFROM product_categoriesSTART WITH parent_id IS NULLCONNECT BY PRIOR category_id = parent_id
);

案例3:销售分析

-- 每月销售前三名产品
SELECT * FROM (SELECT product_id,TO_CHAR(sale_date, 'YYYY-MM') AS month,SUM(amount) AS total_sales,ROW_NUMBER() OVER (PARTITION BY TO_CHAR(sale_date, 'YYYY-MM')ORDER BY SUM(amount) DESC) AS sales_rank,ROWNUM AS report_seqFROM salesGROUP BY product_id, TO_CHAR(sale_date, 'YYYY-MM')
)
WHERE sales_rank <= 3
ORDER BY month, sales_rank;

八、常见问题解答

Q1:ROWNUM和ROW_NUMBER()哪个性能更好?

A1:对于简单限制行数,ROWNUM性能更好,因为它不需要排序。对于复杂分组排序,ROW_NUMBER()更合适。

Q2:ROWID会变化吗?

A2:以下情况会变:

  • 表移动(MOVE)

  • 表重建

  • 分区操作

  • 使用EXP/IMP迁移数据

Q3:LEVEL能否用于普通查询?

A3:不能,必须与CONNECT BY层次查询一起使用。

Q4:如何选择分页方法?

A4:

  • Oracle 12c+:使用FETCH FIRST/OFFSET

  • 11g及以下:简单分页用ROWNUM,复杂排序分页用ROW_NUMBER()

Q5:ROW_NUMBER() vs RANK() vs DENSE_RANK()

A5:

  • ROW_NUMBER():连续唯一序号(1,2,3,4)

  • RANK():相同值同序号,跳号(1,2,2,4)

  • DENSE_RANK():相同值同序号,不跳号(1,2,2,3)

更多Oracle学习内容请查看:Oracle保姆级超详细系列教程_Tyler先森的博客-CSDN博客 

相关文章:

Oracle数据库数据编程SQL<00. 课外关注:rownum、rowid、level、row_number 对比详解与实战>

更多Oracle学习内容请查看&#xff1a;Oracle保姆级超详细系列教程_Tyler先森的博客-CSDN博客 目录 一、基本概念与区别 二、ROWNUM 详解与实战 1. 基本特性 2. 典型应用 2.1 分页查询&#xff08;Oracle传统方式&#xff09; 2.2 限制返回行数 2.3 随机抽样 3. 注意事…...

凸优化基础

文章目录 目录**第1讲&#xff1a;凸优化基础****第2讲&#xff1a;凸优化建模****第3讲&#xff1a;对偶理论****第4讲&#xff1a;梯度下降法****第5讲&#xff1a;牛顿法与内点法****第6讲&#xff1a;次梯度与近端方法****第7讲&#xff1a;分布式凸优化****第8讲&#xff…...

LeetCode面试热题150中12-18题学习笔记(用Java语言描述)

Day 03 12、 O ( 1 ) O(1) O(1)时间插入、删除元素和获取元素 需求&#xff1a;实现RandomizedSet 类&#xff1a; RandomizedSet() 初始化 RandomizedSet 对象bool insert(int val) 当元素 val 不存在时&#xff0c;向集合中插入该项&#xff0c;并返回 true &#xff1b;否…...

开源模型集成接口

一、OpenRouter 概述 ‌ OpenRouter‌是一个开源的大模型API路由器&#xff0c;旨在将各种AI模型和服务集成到一个统一的接口中&#xff0c;使用户能够通过简单的配置调用不同大模型的能力‌。其主要功能包括智能路由用户请求到不同的AI模型&#xff0c;并提供统一的访问接…...

python成功解决AttributeError: can‘t set attribute ‘lines‘

文章目录 报错信息与原因分析解决方法示例代码代码解释总结 报错信息与原因分析 在使用 matplotlib绘图时&#xff0c;若尝试使用 ax.lines []来清除图表中的线条&#xff0c;会遇到AttributeError: can’t set attribute错误。这是因为 ax.lines是一个只读属性&#xff0c;不…...

宿舍管理系统(servlet+jsp)

宿舍管理系统(servletjsp) 宿舍管理系统是一个用于管理学生宿舍信息的平台&#xff0c;支持超级管理员、教师端和学生端三种用户角色登录。系统功能包括宿舍管理员管理、学生管理、宿舍楼管理、缺勤记录、添加宿舍房间、心理咨询留言板、修改密码和退出系统等模块。宿舍管理员…...

Unity UI 从零到精通 (第30天): Canvas、布局与C#交互实战

Langchain系列文章目录 01-玩转LangChain&#xff1a;从模型调用到Prompt模板与输出解析的完整指南 02-玩转 LangChain Memory 模块&#xff1a;四种记忆类型详解及应用场景全覆盖 03-全面掌握 LangChain&#xff1a;从核心链条构建到动态任务分配的实战指南 04-玩转 LangChai…...

vue项目打包部署到maven仓库

需要的资源文件&#xff0c;都放在根目录下&#xff1a; 1. versionInfo.js const fs require(fs) const path require(path) const mkdirp require(mkdirp) const spawn require(child_process).spawnconst packageObj require(./package.json) const versionNo packa…...

【力扣】day1

文章目录 27.移除元素26. 删除有序数组的重复项 27.移除元素 26. 删除有序数组的重复项 我们仔细看一下这两道题的最后的返回值,为什么第一题返回slow 而第二题返回slow1 最后的返回值该如何返回绝对不是凭感觉,我们自己分析一下第一个slow,从0位置开始, 遇到val值就开始和fas…...

MySQL:B+树索引

InnoDB索引方案 为了使用二分法快速定位具体的目录项&#xff0c;假设所有目录项都可以在物理存储器上连续存储&#xff0c;有以下问题&#xff1a; InnoDB使用页为管理存储空间的基本单位&#xff0c;最多只能保证16KB的连续存储空间&#xff0c;记录数据量多可能需要非常大…...

如何建立可复用的项目管理模板

建立可复用的项目管理模板能够显著提高项目执行效率、减少重复劳动、确保项目管理标准化。在企业中&#xff0c;项目管理往往涉及多个步骤和多个团队&#xff0c;然而每次开始一个新项目时&#xff0c;如果都从头开始设计流程和文档&#xff0c;势必浪费大量的时间和精力。通过…...

Go:goroutine 和通道

goroutine f() // 等待 f() 返回 go f() // 新建一个调用 f() 的 goroutine&#xff0c;不用等待在 Go 语言里&#xff0c;goroutine 是并发执行的活动单元。与顺序执行程序不同&#xff0c;在有多个 goroutine 的并发程序中&#xff0c;不同函数可同时执行。程序启动时&…...

盛水最多的容器问题详解:双指针法与暴力法的对比与实现

文章目录 问题描述方法探讨方法一&#xff1a;暴力法&#xff08;Brute Force&#xff09;思路代码实现复杂度分析 方法二&#xff1a;双指针法&#xff08;Two Pointers&#xff09;思路正确性证明代码实现复杂度分析 方法对比总结 摘要 盛水最多的容器&#xff08;Container …...

VMWare 16 PRO 安装 Rocky8 并部署 MySQL8

VMWare 16 PRO 安装 Rocky8 并部署 MySQL8 一.Rocky OS 下载1.官网 二.配置 Rocky1.创建新的虚拟机2.稍后安装系统3.选择系统模板4.设置名字和位置5.设置大小6.自定义硬件设置核心、运存和系统镜像7.完成 三.启动安装1.上下键直接选择安装2.回车安装3.设置分区&#xff08;默认…...

日常学习开发记录-slider组件

日常学习开发记录-slider组件 从零开始实现一个优雅的Slider滑块组件前言一、基础实现1. 组件结构设计2. 基础样式实现3. 基础交互实现 二、功能增强1. 添加拖动功能2. 支持范围选择3. 添加垂直模式 三、高级特性1. 键盘操作支持2. 禁用状态 五、使用示例六、总结 从零开始实现…...

AIDL 中如何传递 Parcelable 对象

目录 1. 直接在 AIDL 中定义 Parcelable 对象2. 自定义 Parcelable 对象的传递3. 以 Rect 类为例的 Parcelable 实现4. 注意安全性5. 小结1. 直接在 AIDL 中定义 Parcelable 对象 背景说明 从 Android 10(API 级别 29)开始,AIDL 允许直接在 .aidl 文件中定义 Parcelable 对…...

LVGL实战训练——计算器实现

目录 一、简介 二、部件知识 2.1 按钮矩阵部件(lv_btnmatrix) 2.1.1 按钮矩阵部件的组成 2.1.2 按钮文本设置 2.1.3 按钮索引 2.1.4 按钮宽度 2.1.5 按钮属性 2.1.6 按钮互斥 2.1.7 按钮文本重着色 2.1.8 按钮矩阵部件的事件 2.1.9 按钮矩阵部件的 API 函数 2.2…...

代码随想录算法训练营Day30

力扣452.用最少数量的箭引爆气球【medium】 力扣435.无重叠区间【medium】 力扣763.划分字母区间【medium】 力扣56.合并区间【medium】 一、力扣452.用最少数量的箭引爆气球【medium】 题目链接&#xff1a;力扣452.用最少数量的箭引爆气球 视频链接&#xff1a;代码随想录 题…...

AIDL 语言简介

目录 软件包类型注释导入AIDL 的后端AIDL 语言大致上基于 Java 语言。AIDL 文件不仅定义了接口本身,还会定义这个接口中用到的数据类型和常量。 软件包 每个 AIDL 文件都以一个可选软件包开头,该软件包与各个后端中的软件包名称相对应。软件包声明如下所示: package my.pac…...

经典算法 判断一个图中是否有环

判断一个图中是否有环 问题描述 给一个以0 0结尾的整数对列表&#xff0c;除0 0外的每两个整数表示一条连接了这两个节点的边。假设节点编号不超过100000大于0。你只要判断由这些节点和边构成的图中是否存在环。存在输出YES&#xff0c;不存在输出NO。 输入样例1 6 8 5 3 …...

Transformer-PyTorch实战项目——文本分类

Transformer-PyTorch实战项目——文本分类 ———————————————————————————————————————————— 【前言】 这篇文章将带领大家使用Hugging Face里的模型进行微调&#xff0c;并运用在我们自己的新项目——文本分类中。需要大家提前下…...

Linux-服务器负载评估方法

在 Linux 服务器中&#xff0c;top 命令显示的 load average&#xff08;平均负载&#xff09;反映了系统在特定时间段内的负载情况。它通常显示为三个数值&#xff0c;分别代表过去 1 分钟、5 分钟和 15 分钟的平均负载。 1. 什么是 Load Average&#xff1f; Load average …...

Transformer编程题目,结合RTX 3060显卡性能和市场主流技术

以下是10道针对4年经验开发者的Transformer编程题目&#xff0c;结合RTX 3060显卡性能和市场主流技术&#xff0c;每题包含模型选择和实现逻辑描述&#xff1a; 题目1&#xff1a;医疗报告结构化提取 模型选择&#xff1a;BioBERT-base 要求&#xff1a; 开发从PDF医疗报告中提…...

Web三漏洞学习(其二:sql注入)

靶场&#xff1a;NSSCTF 、云曦历年考核题 二、sql注入 NSSCTF 【SWPUCTF 2021 新生赛】easy_sql 这题虽然之前做过&#xff0c;但为了学习sql&#xff0c;整理一下就再写一次 打开以后是杰哥的界面 注意到html网页标题的名称是 “参数是wllm” 那就传参数值试一试 首先判…...

VLAN的知识

1.什么是VLAN&#xff1f; VLAN是虚拟局域网&#xff0c;逻辑隔离广播域和网络区域 是一种通过将局域网内的设备逻辑地划分为一个个网络的技术 2.对比逻辑网络分割和物理网络分割&#xff1f; 逻辑网络分割是VLAN&#xff0c;隔离广播域和网络区域 物理网络分割是路由&…...

RFID 赋能部队智能物联网仓储建设:打造信息化高效解决方案

在当今军事现代化进程的宏大背景下&#xff0c;部队后勤保障工作无疑占据着举足轻重的地位&#xff0c;而仓储管理作为其中的核心环节&#xff0c;更是至关重要。传统的仓储管理模式在面对当下物资种类繁杂、数量庞大的现状时&#xff0c;已显得力不从心&#xff0c;效率低下、…...

结构型屏蔽在高频电子设备中的应用与优化

在当今高度电子化的时代&#xff0c;随着电子产品工作频率不断提高&#xff0c;设备内部温度上升&#xff0c;电磁环境日趋复杂&#xff0c;电磁兼容&#xff08;EMC&#xff09;问题成为设计和制造过程中必须重点解决的问题。EMC不仅关系到设备自身的稳定运行&#xff0c;更涉…...

【教程】Ubuntu修改ulimit -l为unlimited

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你&#xff0c;欢迎[点赞、收藏、关注]哦~ 目录 问题描述 解决方法一 解决方法二 解决方法三 (终极) 问题描述 查系统资源限制 ulimit -l如果返回的是 64 或其他较小值&#xff0c;那么RDM…...

【HDFS】BlockPlacementPolicyRackFaultTolerant#getMaxNode方法的功能及具体实例

方法参数说明: numOfChosen:已经选择的节点数numOfReplicas:还需要选择的副本数方法的返回值是一个长度为2的数组:[调整后的要选出多少个节点(不包括已经选择的), 每个机架最大能选择的节点数] @Overrideprotected int[] getMaxNodesPerRack(int numOfChosen, int numOfR…...

水污染治理(生物膜+机器学习)

文章目录 **1. 水质监测与污染预测****2. 植物-微生物群落优化****3. 系统设计与运行调控****4. 维护与风险预警****5. 社区参与与政策模拟****挑战与解决思路****未来趋势** 前言&#xff1a; 将机器学习&#xff08;ML&#xff09;等人工智能技术融入植树生物膜系统&#xff…...

数模小白变大神的日记2025.4.15日

分工 1.论文:mathtype (Latex) 2.建模&#xff1b;相应的建模知识与撰写方法&#xff0c;写摘要 3.编程:matlab、SPSs、(Python) 评价模型 1. 层次分析法 ①层次分析法是一种多目标、多准则的决策问题 ②层次分析法是一种主观加权法 ③层次分析法通过以下步骤实现: 1.构…...

STM32提高篇: 以太网通讯

STM32提高篇: 以太网通讯 一.以太网通讯介绍二.W5500芯片介绍1.W5500芯片特点2.W5500应用目标3.接入框图 三.驱动移植四.tcp通讯五.udp通讯六.http_server 一.以太网通讯介绍 以太网&#xff08;Ethernet&#xff09;是一种计算机局域网技术。IEEE组织的IEEE 802.3标准制定了以…...

4-15记录(冒泡排序,快速选择排序)

算法稳定 简单选择排序的实质就是最后一个和第一个比较&#xff0c;小&#xff0c;就换位置&#xff0c;然后继续用最后一个数字和第二个比较&#xff0c;以此类推。 但是算法不稳定&#xff0c;本来下划线的2在后面&#xff0c;但是经过算法后去了前面 快速排序 实现过程&am…...

Ubuntu系统18.04更新驱动解决方法

原始是&#xff1a;ubuntu18.04里面的驱动是470&#xff0c;对应cuda11.4 现在需要更新为525&#xff0c;对应cuda为12.0 实现&#xff1a; 1、打开终端 Ctrl Alt T2、使用 lspci 命令&#xff08;快速查看显卡型号&#xff09; lspci | grep -i vga3、终端输入 ubuntu-d…...

Rocky Linux 9.x 基于 kubeadm部署k8s

搭建集群使用docker下载K8s&#xff0c;使用一主两从模式 主机名IP地址k8s- master192.168.1.141k8s- node-1192.168.1.142k8s- node-2192.168.1.143 一&#xff1a;准备工作 VMware Workstation Pro新建三台虚拟机Rocky Linux 9&#xff08;系统推荐最小化安装&#xff09; …...

MATLAB程序实现了一个物流配送优化系统,主要功能是通过遗传算法结合四种不同的配送策略,优化快递订单的配送方案

%% 主函数部分 % function main()clear; clc; close all;% 生成或加载算例 filename = D:\快递优化\LogisticsInstance.mat; if ~exist(filename, file)instance = generate_instance();save(filename, -struct, instance); elseinstance = load(filename); end% 遗传算法参数配…...

利用宝塔面板搭建RustDesk服务

一、介绍 1.1官网 https://rustdesk.com/ 1.2github仓库 https://github.com/rustdesk/rustdesk 1.3特点 RustDesk 支持多种操作系统&#xff0c;包括 Windows、macOS、Linux、Android 和 iOS。它甚至提供网页版客户端&#xff0c;可以在浏览器中直接使用。 用户可以通过…...

前端与Java后端交互出现跨域问题的14种解决方案

跨域问题是前端与后端分离开发中的常见挑战&#xff0c;以下是14种完整的解决方案&#xff1a; 1 前端解决方案( 开发环境代理) 1.1 Webpack开发服务器代理 // vue.config.js 或 webpack.config.js module.exports {devServer: {proxy: {/api: {target: http://localhost:8…...

PBKDF2全面指南(SpringBoot实现版)

文章目录 第一部分:PBKDF2基础概念1. 什么是PBKDF2?2. 为什么需要PBKDF2?3. PBKDF2的工作原理4. PBKDF2与其他密码散列函数的比较第二部分:在Java和SpringBoot中使用PBKDF21. Java内置的PBKDF2支持2. SpringBoot中集成PBKDF22.1 添加依赖2.2 配置PBKDF2密码编码器2.3 自定义…...

基于RV1126开发板的rknn-toolkit-lite使用方法

1. rknn-toolkit-lite介绍 rknn-toolkit-lite是用于python算法的推理的组件&#xff0c;当前已经在EASY-EAI-Nano完成适配&#xff0c;用户可以用它进行深度学习算法的纯python开发。而且同时支持已经进行了预编译的模型&#xff0c;短短几行代码即可完成算法的推理&#xff0c…...

一款轻量级的PHP地址发布页面源码

源码介绍 一款轻量级的PHP链接发布页面源码&#xff0c;适合快速搭建个性化的链接导航网站&#xff0c;支持动态链接管理和多种风格模板切换 1&#xff1a;后台登录地址为/admin/login.php&#xff0c;提供便捷的配置入口。 2&#xff1a;默认用户名是admin&#xff0c;密码为…...

分布式计算领域的前沿工具:Ray、Kubeflow与Spark的对比与协同

在当今机器学习和大数据领域&#xff0c;分布式计算已成为解决大规模计算问题的关键技术。本文将深入探讨三种主流分布式计算框架——Ray、Kubeflow和Spark&#xff0c;分析它们各自的特点、应用场景以及如何结合它们的优势创建更强大的计算平台。 Spark批量清洗快&#xff0c;…...

【专题刷题】双指针(一)

&#x1f4dd;前言说明&#xff1a; 本专栏主要记录本人的基础算法学习以及LeetCode刷题记录&#xff0c;按专题划分每题主要记录&#xff1a;1&#xff0c;本人解法 本人屎山代码&#xff1b;2&#xff0c;优质解法 优质代码&#xff1b;3&#xff0c;精益求精&#xff0c;…...

火山引擎旗下防御有哪些

首先&#xff0c;我需要确认用户是不是打错了&#xff0c;比如把“引擎”当成了“云”&#xff0c;或者他们真的想了解火山引擎的防御机制。火山引擎是字节跳动旗下的云服务平台&#xff0c;类似于阿里云或腾讯云&#xff0c;所以用户可能想了解的是其安全防护措施。 接下来&am…...

python程序打包——nuitka使用

目前python打包成exe的工具主要有&#xff1a;PyInstaller Briefcase py2exe py2app Nuitka CX_Freeze等。 不同于C代码&#xff0c;可以直接编译成可执行的exe文件&#xff0c;或者js代码在浏览器中就能执行&#xff0c;python代码必须通过python解释器来运行&#xff0c…...

编写了一个专门供强化学习玩的贪吃蛇小游戏,可以作为后续学习的playgraound

文章目录 **试玩效果****项目背景****核心设计思路****代码亮点解析****与强化学习算法的对接示例****扩展方向****总结****完整代码**把训练一个会玩小游戏的智能体,作为学习强化学习的一个目标,真的是很有乐趣的一件事。我已经不知为此花费了多少日夜了。如今已是着魔了一般…...

chain_type=“stuff 是什么 ? 其他方式有什么?

chain_type="stuff 是什么 ? 其他方式有什么? 目录 chain_type="stuff 是什么 ? 其他方式有什么?1. `chain_type="stuff"`2. `chain_type="map_reduce"`3. `chain_type="refine"`4. `chain_type="map_rerank"`在 LangCh…...

在IDEA里面建立maven项目(便于java web使用)

具体步骤&#xff1a; 第一次有的电脑你再创建项目的时候右下角会提醒你弹窗&#xff1a;让你下载没有的东西 一定要下载&#xff01;&#xff01;可能会很慢 运行结果&#xff1a; 因为他是默认的8080端口所以在运行的时候输入的url如下图&#xff1a; 新建了一个controller代…...

MyBatis 详解

1. 什么是 MyBatis&#xff1f; MyBatis 是一款优秀的 持久层框架&#xff0c;它通过 XML 或注解配置&#xff0c;将 Java 对象&#xff08;POJO&#xff09;与数据库操作&#xff08;SQL&#xff09;进行灵活映射&#xff0c;简化了 JDBC 的复杂操作。 核心思想&#xff1a;S…...

郑州工程技术学院党委书记甘勇一行莅临埃文科技调研交流

为深化产教融合、推动人工智能领域人才培养与产业需求精准对接&#xff0c;2025年4月9日下午&#xff0c;郑州工程技术学院党委书记甘勇、河南省人工智能产业创新发展联盟执行秘书长孟松涛等一行莅临埃文科技调研交流。 一、聚焦技术前沿 共话AI产业变革 座谈会上&#xff0c;…...