数据库对象与权限管理-视图与索引管理
一、视图(View)管理
1. 视图的定义与本质
视图(View)是Oracle数据库中的逻辑表,它不直接存储数据,而是通过预定义的SQL查询动态生成结果集。视图的本质可以理解为:
- 虚拟表:用户可像操作普通表一样查询视图
- 查询模板:保存复杂的
SELECT
语句逻辑 - 安全屏障:隐藏底层表结构和敏感数据
2. 视图的核心作用
应用场景 | 说明 |
简化复杂查询 | 将多表关联、聚合计算等操作封装为简单查询 |
数据权限控制 | 仅暴露部分列或行数据(如屏蔽薪资字段) |
逻辑抽象层 | 业务系统无需关心物理表结构变化 |
数据整合 | 合并多个异构数据源(需配合物化视图) |
3. 视图的创建与维护
基础语法
CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW schema.view_name
[(column1, column2...)]
AS SELECT_statement
[WITH CHECK OPTION]
[WITH READ ONLY];
参数解析
OR REPLACE
:覆盖同名视图FORCE
:即使基表不存在也强制创建(默认NOFORCE
)WITH CHECK OPTION
:插入/更新数据时需满足视图条件WITH READ ONLY
:禁止通过视图修改数据
创建示例
-- 创建高薪员工视图(薪资>=10000)
CREATE OR REPLACE VIEW v_high_salary
AS
SELECT employee_id, name, salary, department_id
FROM employees
WHERE salary >= 10000
WITH CHECK OPTION;
视图维护操作
-- 查看视图定义
SELECT text FROM user_views WHERE view_name = 'V_HIGH_SALARY';-- 修改视图(使用OR REPLACE)
CREATE OR REPLACE VIEW v_high_salary AS ...;-- 删除视图
DROP VIEW v_high_salary;
4. 视图更新限制
以下类型的视图不允许直接进行DML操作:
- 包含聚合函数(
SUM
/AVG
等) - 包含
GROUP BY
或HAVING
子句 - 包含
DISTINCT
关键字 - 包含
ROWNUM
伪列 - 多表连接查询(部分情况)
示例:只读视图创建
CREATE VIEW v_dept_stats AS
SELECT department_id, AVG(salary) avg_sal
FROM employees
GROUP BY department_id
WITH READ ONLY;
二、索引(Index)管理
1. 索引的核心价值
索引是提高查询性能的数据结构,其作用类似书籍目录。Oracle支持多种索引类型:
索引类型 | 特点 |
B-Tree索引 | 默认类型,适合高基数列(唯一值多) |
位图索引 | 低基数列(如性别),适合OLAP系统 |
函数索引 | 基于列的函数表达式创建(如 |
组合索引 | 多列联合索引,列顺序影响查询效率 |
2. 索引的创建与维护
基础语法
CREATE [UNIQUE] [BITMAP] INDEX schema.index_name
ON table_name (column1 [ASC|DESC], ...)
[TABLESPACE tablespace_name]
[STORAGE (...)]
[ONLINE]; -- 在线创建不影响业务
创建示例
-- 单列B-Tree索引
CREATE INDEX idx_emp_salary ON employees(salary);-- 组合索引
CREATE INDEX idx_emp_dept_sal ON employees(department_id, salary DESC);-- 函数索引
CREATE INDEX idx_emp_name_upper ON employees(UPPER(name));
索引维护操作
-- 重建索引(优化存储)
ALTER INDEX idx_emp_salary REBUILD;-- 监控索引使用
SELECT * FROM v$object_usage WHERE index_name = 'IDX_EMP_SALARY';-- 删除索引
DROP INDEX idx_emp_salary;
3. 索引优化策略
创建原则
- 高频查询字段:
WHERE
、JOIN
、ORDER BY
常用列 - 选择高选择性列:区分度高的列(如ID)
- 避免过度索引:单表索引不超过5个
- 组合索引列顺序:等值查询列在前,范围查询列在后
性能验证方法
-- 查看执行计划
EXPLAIN PLAN FOR
SELECT * FROM employees WHERE salary >= 10000;
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);-- 统计信息收集
EXEC DBMS_STATS.GATHER_TABLE_STATS('HR', 'EMPLOYEES');
4. 索引的代价
- 存储开销:索引占用表空间的20%-30%
- DML性能下降:每次
INSERT
/UPDATE
/DELETE
需维护索引 - 优化器误判:低效索引可能导致执行计划劣化
三、视图、索引实战
1. 环境准备
基础表结构(已提供)
-- 员工表(含薪资、部门等信息)
CREATE TABLE employees (employee_id NUMBER(6) PRIMARY KEY,name VARCHAR2(50) NOT NULL,email VARCHAR2(50),phone_number VARCHAR2(20),hire_date DATE NOT NULL,job_id VARCHAR2(10),salary NUMBER(8,2),commission_pct NUMBER(2,2),manager_id NUMBER(6),department_id NUMBER(4)
);-- 部门表
CREATE TABLE departments (department_id NUMBER(4) PRIMARY KEY,department_name VARCHAR2(30) NOT NULL,manager_id NUMBER(6),location_id NUMBER(4)
);
模拟数据(供验证)
-- 插入部门数据
INSERT INTO departments VALUES (10, 'IT', 100, 1700);
INSERT INTO departments VALUES (20, 'Sales', 101, 1800);-- 插入员工数据
INSERT INTO employees VALUES
(100, 'Alice', 'alice@company.com', '515.123.4567', DATE '2020-01-01', 'IT_PROG', 15000, NULL, NULL, 10);
INSERT INTO employees VALUES
(101, 'Bob', 'bob@company.com', '515.123.4568', DATE '2019-06-01', 'SA_MAN', 12000, 0.2, 100, 20);
2. 视图高级应用实战
1. 安全视图:隐藏敏感字段
CREATE VIEW v_hr_employee AS
SELECT employee_id,name,email,phone_number,hire_date,job_id,department_id
FROM employees
WITH CHECK OPTION; -- 防止通过视图插入不符合条件的数据-- 测试查询
SELECT * FROM v_hr_employee WHERE department_id = 10;
2. 计算视图:薪资分析
CREATE OR REPLACE VIEW v_employee_annual_income AS
SELECT employee_id,name,salary,commission_pct,-- 计算年薪:月薪*13 + 佣金(salary * 13 + NVL(salary * commission_pct, 0)) AS annual_income,department_id
FROM employees
WHERE salary IS NOT NULL;-- 查询年薪超过15万的员工
SELECT * FROM v_employee_annual_income
WHERE annual_income > 150000
ORDER BY annual_income DESC;
3. 多表关联视图:员工详情
CREATE VIEW v_emp_details AS
SELECT e.employee_id,e.name,d.department_name,e.hire_date,TRUNC(MONTHS_BETWEEN(SYSDATE, e.hire_date)/12) AS years_of_service
FROM employees e
JOIN departments d ON e.department_id = d.department_id;-- 查询IT部门工龄超过3年的员工
SELECT * FROM v_emp_details
WHERE department_name = 'IT' AND years_of_service > 3;
4. 带权限的物化视图
CREATE MATERIALIZED VIEW mv_dept_salary_stats
REFRESH COMPLETE START WITH SYSDATE NEXT SYSDATE + 1
AS
SELECT d.department_name,COUNT(e.employee_id) AS emp_count,AVG(e.salary) AS avg_salary,MAX(e.salary) AS max_salary
FROM employees e
JOIN departments d ON e.department_id = d.department_id
GROUP BY d.department_name;-- 查询物化视图
SELECT * FROM mv_dept_salary_stats WHERE avg_salary > 10000;
3. 索引深度优化实战
1. 高频查询优化
-- 创建函数索引
CREATE INDEX idx_emp_email_upper ON employees(UPPER(email));-- 使用索引的查询
SELECT * FROM employees
WHERE UPPER(email) = UPPER('alice@company.com'); -- 命中索引
2. 组合索引设计
-- 创建组合索引(部门ID + 薪资降序)
CREATE INDEX idx_emp_dept_salary ON employees(department_id, salary DESC);-- 高效查询:IT部门薪资前10名
SELECT * FROM (SELECT * FROM employees WHERE department_id = 10 ORDER BY salary DESC
) WHERE ROWNUM <= 10; -- 利用索引避免全表排序
3. 覆盖索引加速统计
-- 创建覆盖索引
CREATE INDEX idx_emp_dept_covering ON employees(department_id, employee_id);-- 查询可直接从索引获取数据
SELECT department_id, COUNT(employee_id)
FROM employees
GROUP BY department_id; -- 使用INDEX FAST FULL SCAN
4. 索引监控与维护
-- 步骤1:监控索引使用情况
ALTER INDEX idx_emp_dept_salary MONITORING USAGE;-- 步骤2:分析无效索引
SELECT * FROM v$object_usage
WHERE index_name = 'IDX_EMP_DEPT_SALARY'
AND used = 'NO'; -- 若长期未使用,考虑删除-- 步骤3:重建索引优化空间
ALTER INDEX idx_emp_dept_salary REBUILD ONLINE;
4. 执行计划分析案例
1. 未使用索引的慢查询
EXPLAIN PLAN FOR
SELECT * FROM employees
WHERE UPPER(name) = 'ALICE'; -- 未使用索引SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);
/* 输出关键信息:TABLE ACCESS FULL | EMPLOYEES
*/
2. 优化后使用函数索引
-- 创建函数索引
CREATE INDEX idx_emp_name_upper ON employees(UPPER(name));-- 再次分析
EXPLAIN PLAN FOR
SELECT * FROM employees
WHERE UPPER(name) = 'ALICE';SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);
/* 输出关键信息:INDEX RANGE SCAN | IDX_EMP_NAME_UPPER
*/
四、开发注意事项
1. 视图更新陷阱
-- 错误示例:尝试更新计算视图
UPDATE v_employee_annual_income
SET annual_income = 200000
WHERE employee_id = 100; -- 将抛出ORA-01733错误
2. 索引设计禁忌
- 过度索引:在频繁更新的列上创建多个索引
- 冗余索引:已有组合索引
(a,b)
再单独创建(a)
- 无效索引:在性别等低基数列上使用B-Tree索引
3. 高级技巧
- 不可见索引测试:
CREATE INDEX idx_test ON employees(phone_number) INVISIBLE;
-- 按需切换可见性
ALTER INDEX idx_test VISIBLE;
- 位图索引适用场景:
CREATE BITMAP INDEX idx_emp_job ON employees(job_id); -- 适合重复值多的列
附录:常用系统视图查询
-- 查看所有索引
SELECT * FROM user_indexes WHERE table_name = 'EMPLOYEES';-- 查看视图定义
SELECT text FROM user_views WHERE view_name = 'V_HR_EMPLOYEE';-- 分析索引碎片率
SELECT name, del_lf_rows/lf_rows AS frag_ratio
FROM index_stats WHERE lf_rows > 0;
相关文章:
数据库对象与权限管理-视图与索引管理
一、视图(View)管理 1. 视图的定义与本质 视图(View)是Oracle数据库中的逻辑表,它不直接存储数据,而是通过预定义的SQL查询动态生成结果集。视图的本质可以理解为: 虚拟表:用户可…...
德施曼重磅发布五大突破性技术及多款重磅新品,开启AI智能管家时代
当智能锁拥抱人文关怀,万物有灵便有了具象化的表达。 4月22日,智能锁领军品牌德施曼“万物有灵”2025全球新品发布会在乌镇隆重举行,为智能锁行业带来了AI时代的革新方案。 会上,德施曼创始人/CEO祝志凌重磅发布了五大突破性技术&…...
单元测试学习笔记(一)
自动化测试 通过测试工具/编程模拟手动测试步骤,全自动半自动执行测试用例,对比预期输出和实际输出,记录并统计测试结果,减少重复的工作量。 单元测试 针对最小的单元测试,Java中就是一个一个的方法就是一个一个的单…...
Rest Client插件写http文件直接发送请求
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言📌 插件介绍:🚀 安装方式:📚 使用示例:⚙️ 功能亮点: 前言 直接在 VSCode …...
LLM 论文精读(一)Scaling Laws for Neural Language Models
这篇文章是2020年发表的一篇LLM领域中非常重要的论文,由OpenAI发布,总结了LLM模型规模与训练数据token之间的比例关系,即我们熟知的 Scaling Laws,允许 通过观察小规模训练实验,提前预测大模型的效果表现,降…...
Spring AOP + Logback + MDC全链路日志追踪
1、背景 由于权限管理和安全规范,服务都部署到云上,只能通过日志系统查看日志。 然而,面对海量的日志数据,如何快速定位关键信息和调用链路是一个巨大的挑战。 2、方案调研 在 Spring Boot 中实现全链路日志追踪,核…...
SVT-AV1编码器初始化函数
一 函数解释 这个函数SVT-AV1编码器初始化的核心函数,负责配置编码器组件,分配资源并启动编码线程,以下时对每一行的详细解释。 函数签名和参数检查 EB_API EbErrorType svt_av1_enc_init(EbComponentType *svt_enc_component) { if (svt_enc…...
Unity 导出Excel表格
1.首先,需要导入EPPlus.dll;(我这里用的是Unity 2017.3.0f3) https://download.csdn.net/download/qq_41603955/90670669 2.代码如下: using UnityEngine; using UnityEditor; using System.IO; using OfficeOpenXm…...
Web前端开发技术——HTML5、CSS3、JavaScript
一、HTML 1.基本结构 <html lang "en"><head><meta charset"UTF-8"><meta name"Keywords" content""><meta name"Description" content""><title>Web网页标题</title&g…...
野外价值观:在真实世界的语言模型互动中发现并分析价值观
每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...
【华为HCIP | 华为数通工程师】821—多选解析—第十二页
多选727、某台路由器的输出信息如下所示,以下描述正确的有哪些选项? A、路由器Router ID为10.0.1.1 B、路由器Router ID为10.0.2.2。 C、本路由器的接口地址为10.0.12.2。 D、本路由器是DR。 解析:display ospf peer //获取的OSPF邻居信…...
Selenium 在爬取过程中,网络响应被退出的解决方案
我在使用 Selenium 爬取网站的时候,直接get url ,却立马闪退,遇到了获取网络响应直接被退出的问题。 这通常是由于 反爬机制、浏览器检测 或 网络限制 导致的。 以下是 完整排查与解决方案: 1. 检查常见原因 问题类型典型表现可…...
楼宇自控怎样全方位融入建筑领域,为绿色建筑发展添砖加瓦
在全球积极倡导可持续发展的大背景下,绿色建筑已成为建筑领域发展的必然趋势。绿色建筑旨在减少对环境的负面影响,提高能源利用效率,为用户提供健康、舒适的室内环境。而楼宇自控系统作为建筑智能化的核心组成部分,正以其独特的技…...
语音合成(TTS)从零搭建一个完整的TTS系统-第二节-中文转拼音
一、概述 本节我们进行语音合成前端中的第二步,需要把中文转换为拼音。通过python和c两种语言进行实现,python可以直接调用pypinyin库实现。c实现是本节的重点,首先根据词典进行分词,接着把分词后的词进行词典映射,得到…...
基于springboot的停车位管理系统(源码+数据库)
12基于springboot的停车位管理系统:前端 thymeleaf、Jquery、bootstrap,后端 Springboot、Mybatis,系统角色分为:用户、管理员,管理员在管理后台录入车位信息,用户在线查找车位、预约车位,解决停…...
深入理解 Spring @Configuration 注解
在 Spring 框架中,@Configuration 注解是一个非常重要的工具,它用于定义配置类,这些类可以包含 Bean 定义方法。通过使用 @Configuration 和 @Bean 注解,开发者能够以编程方式创建和管理应用程序上下文中的 Bean。本文将详细介绍 @Configuration 注解的作用、如何使用它以及…...
15.三数之和(LeetCode)java
个人理解: 1.使用双指针做法,首先对数组进行排序 第一重for循环控制第一个数,对数组进行遍历。双指针初始化为lefti1, rigthnums.length-1。然后使用while循环移动双指针寻找合适的数。因为返回的是数,不是下标,数不能…...
2022年全国职业院校技能大赛 高职组 “大数据技术与应用” 赛项赛卷(10卷)任务书
2022年全国职业院校技能大赛 高职组 “大数据技术与应用” 赛项赛卷(10卷)任务书 模块A:大数据平台搭建(容器环境)(15分)任务一:Hadoop 伪分布式安装配置任务二:Flume安装…...
Redis—内存淘汰策略
记:全体LRU,ttl LRU,全体LFU,ttl LFU,全体随机,ttl随机,最快过期,不淘汰(八种) Redis 实现的是一种近似 LRU 算法,目的是为了更好的节约内存&…...
新能源汽车可视化大屏系统毕业设计
以下是一个基于Python和Flask框架的新能源汽车可视化大屏系统后台代码示例。这个系统提供API接口用于前端大屏展示新能源汽车相关数据。 主应用文件 (app.py) python from flask import Flask, jsonify, request from flask_cors import CORS import random from datetime imp…...
02-keil5的配置和使用
一、创建工程 1、在菜单栏”Project”,在弹出的下拉菜单,选择“New uVision Project”。 2、在弹出的对话框,填写工程的名字,例如工程名字为project。 3、为保存的工程,选择对应的芯片。 4、为当前工程,添…...
电脑硬盘丢失怎么找回?解决硬盘数据恢复的2种方法
无论是个人用户还是企业用户来讲,存储在磁盘中的文档、图片、视频、音频等数据都具有相当的价值。但在日常使用过程中,误删操作、病毒攻击、硬件故障等情况都可能造成电脑硬盘突然消失不见数据丢失。面对电脑硬盘丢失这类问题时,采取正确的应…...
【Spring】依赖注入的方式:构造方法、setter注入、字段注入
在Spring框架中,除了构造器注入(Constructor Injection)和Setter注入(Setter Injection),还有一种依赖注入方式:字段注入(Field Injection)。字段注入通过在Bean的字段上…...
涨薪技术|0到1学会性能测试第22课-关联函数web_reg_save_param_ex
前面的推文我们掌握了性能测试脚本开发3种常见的关联技术,今天开始给大家分享关联函数web_reg_save_param_ex,后续文章都会系统分享干货! LoadRunner最新版本中,使用的关联函数为web_reg_save_param_ex,以前的版本使用的关联函数为web_reg_save_param,但这两个函数实质差…...
Vue 的数据代理机制
2025/4/22 向 一、什么是数据代理机制 通过访问代理对象的属性,来间接访问目标对象的属性,数据代理机制的实现需要依赖Object.defineProperty()方法。 如下所示: <!DOCTYPE html> <html lang"en"> <head><…...
Android-KeyStore安全的存储系统
在 Android 中,AndroidKeyStore 是一个安全的存储系统,用于存储加密密钥。它提供了一种安全的方式来生成、存储和管理密钥,而无需将密钥暴露给应用程序本身。以下是如何使用 AndroidKeyStore 的基本步骤和示例代码。 检查 AndroidKeyStor…...
部署私有gitlab网站
以下是建立私有 GitLab 代码版本维护平台的完整步骤,涵盖环境准备、安装配置、初始化及日常管理,适用于企业/团队内部代码托管: 一、环境准备 1. 服务器要求(最低配置) 用途CPU内存存储系统要求小型团队(…...
(区间 dp)洛谷 P6879 JOI2020 Collecting Stamps 3 题解
题意 给定一个周长为 L L L 的圆,从一个点出发,有 N N N 个黑白熊雕像,编号为 1 1 1 到 N N N,第 i i i 个雕像在顺时针 X i X_i Xi 米处,如果你没有在 T i T_i Ti 秒内收集到这个黑白熊雕像,那…...
AtCoder 第402场初级竞赛 A~E题解
A CBC 【题目链接】 原题链接:A - CBC 【考点】 枚举 【题目大意】 找出所有的大写字母 【解析】 遍历字符串,判断是否为大写字母,如果是则输出。 【难度】 GESP二级 【代码参考】 #include <bits/stdc++.h> using namespace std;int main() {string s;ci…...
驱动开发硬核特训 · Day 17:深入掌握中断机制与驱动开发中的应用实战
🎥 视频教程请关注 B 站:“嵌入式 Jerry” 一、前言 在嵌入式驱动开发中,“中断”几乎无处不在。无论是 GPIO 按键、串口通信、网络设备,还是 SoC 上的各种控制器,中断都扮演着核心触发机制的角色。对中断机制掌握程度…...
深入理解依赖、Jar 包与 War 包:Java 开发基石探秘
一、引言 在 Java 开发的广袤天地里,依赖管理如同建筑的基石,默默支撑着项目的稳定构建与运行。而 Jar 包和 War 包,作为 Java 应用的常见打包形式,各自承载着不同的使命。本文将深入探讨依赖的重要性,并清晰解说 Jar…...
01.Python代码Pandas是什么?pandas的简介
01.Python代码Pandas是什么?pandas的简介 提示:帮帮志会陆续更新非常多的IT技术知识,希望分享的内容对您有用。本章分享的是pandas的使用语法。前后每一小节的内容是存在的有:学习and理解的关联性,希望对您有用~ pyth…...
国产紫光同创FPGA实现SDI视频编解码+图像缩放,基于HSSTHP高速接口,提供2套工程源码和技术支持
目录 1、前言工程概述免责声明 2、相关方案推荐我已有的所有工程源码总目录----方便你快速找到自己喜欢的项目本博已有的 SDI 编解码方案本方案在Xilinx--Artix7系列FPGA上的应用本方案在Xilinx--Kintex系列FPGA上的应用本方案在Xilinx--Zynq系列FPGA上的应用本方案在Xilinx--U…...
25.4.22学习总结
如何通过好友列表对聊天框的切换 首先,我们知道,你的好友列表是用ListView组件实现的,那么,接下来,我们将开始讲解如何实现切换。 一、改造数据结构 如果你是跟着我的上一篇文章做的话,应该需要修改一些的…...
Agent智能体ReAct机制深度解读:推理与行动的完美闭环
一、从Chain-of-Thought到ReAct的范式演进 1.1 传统决策机制的局限 #mermaid-svg-Jf3ygvgHcGciJvX8 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-Jf3ygvgHcGciJvX8 .error-icon{fill:#552222;}#mermaid-svg-Jf3y…...
UnityDots学习(四)
官方案例HelloCube和Tank学习研究: HelloCube: 通用部分: 使用Authoring根据Inspector的勾选添加为Entity添加不同Component。然后每个System会根据实体添加的Component运行不同的System逻辑。 1. MainThread 简单构造System 先看System接口定义&am…...
Debian 12.10 root 登录失败,两步解决!
大家好,这里是 DBA学习之路,专注于提升数据库运维效率。 前言 今天看到 debian 正式发布 12.10,安装完成后发现无法登录 root 用户: 这里我一开始怀疑是 root 密码错了,所以改了一下 root 密码,忘记 root …...
AI大模型:(二)2.3 预训练自己的模型
目录 1.预训练原理 2.预训练范式 1.未标注数据 2.标注数据 3.有正确答案、也有错误答案 3.手撕transform模型 3.1.transform模型代码 3.2.训练数据集 3.3.预训练 3.4.推理 4.如何选择模型 5.如何确定模型需要哪种训练 大模型预训练(Large-scale Pre-training…...
【C语言】初阶算法相关习题(一)
个人主页 文章目录 ⭐一、数字在升序数组中出现的次数🏠二、整数转换🚀三、至少是其他数字两倍的最大数🏝️四、字符个数的统计🎄五、自除数🎡六、除自身以外数组的乘积🎉七、两个数组的交集 ⭐一、数字在…...
WITH 临时表 SQL优化
在 SQL 优化中, 临时表(CTE,Common Table Expression,公共表表达式) 是一种强大的工具,它通过定义一个临时的结果集(可以理解为 “虚拟表”),让复杂查询更易读、更高效&a…...
Go语言中 defer 使用场景及深度注意事项指南
文章精选推荐 1 JetBrains Ai assistant 编程工具让你的工作效率翻倍 2 Extra Icons:JetBrains IDE的图标增强神器 3 IDEA插件推荐-SequenceDiagram,自动生成时序图 4 BashSupport Pro 这个ides插件主要是用来干嘛的 ? 5 IDEA必装的插件&…...
第33周JavaSpringCloud微服务 面试题
一、项目面试 面试中介绍项目的方法 在面试过程中,若被问及相关项目,为提升通过几率,应着重介绍项目的功能点和架构升级内容。确保将项目的亮点讲透讲精彩,这对获取 offer 至关重要。 1. 项目架构 项目整体架构概述 项目整体…...
鸿蒙开发:Swiper轮播图
鸿蒙Swiper组件详解 一、Swiper组件概述 Swiper是鸿蒙(HarmonyOS)系统中提供的一个滑动容器组件,它允许用户通过手指滑动来切换子组件(通常是页面或图片),实现轮播图、引导页、图片浏览器等常见UI效果。 说明 该组件从API versi…...
Go语言之sync包 WaitGroup的使用和底层实现
在 Go 语言里,sync 包中的 WaitGroup 是一个实用工具,用于等待一组 goroutine 完成任务。其核心原理是通过内部维护一个计数器,该计数器初始值为 0,每启动一个新的 goroutine 就将计数器加 1,每个 goroutine 完成任务后…...
7N60-ASEMI无人机专用功率器件7N60
编辑:LL 7N60-ASEMI无人机专用功率器件7N60 型号:7N60 品牌:ASEMI 封装:TO-220F 最大漏源电流:7A 漏源击穿电压:600V 批号:最新 RDS(ON)Max:1.20Ω …...
SystemV-消息队列与责任链模式
一、SystemV 消息队列 1. 消息队列API Ftok 函数定义: key_t ftok(const char *pathname, int proj_id);函数作用: 获取唯一的key值标识符,用于标识系统V消息队列。参数解释: pathname:有效的文件路径(需…...
Ubuntu与Linux的关系
Linux 是一个 操作系统内核。它是一个类 Unix 系统,免费、开源,许多不同的操作系统(叫“发行版”)都是基于 Linux 内核构建的。 Ubuntu 是一个 基于 Linux 内核的操作系统发行版。它是目前最流行、最易用的 Linux 发行版之一&…...
同时支持windows和Linux的NFC读写器web插件
一个网站集成了NFC读写器的功能,如何才能跨系统运行呢,既要在windows系统下正常运行,也需要在银河麒麟,统信UOS等信创系统下运行。 友我科技NFC读写器web插件很好的解决了这个问题,在客户端不仅支持windows系统&#x…...
突破AI检测边界:对抗技术与学术伦理的终极博弈
随着GPT-4、Claude等大模型的文本生成能力突破人类写作水平,AI检测工具与对抗技术的博弈已进入白热化阶段。本文深入解析基于对抗训练的文本风格混淆网络如何突破GPTZero最新防御体系,探讨OpenAI多模态内容溯源系统引发的技术升级,并针对学术…...
pg数据库删除自建表空间
1. tbs_sjzx已经创建(略) pg数据库删除自己创建表空间;--查看表空间相关表 SELECT * FROM pg_tablespace; SELECT relname FROM pg_class WHERE reltablespace (SELECT oid FROM pg_tablespace WHERE spcname tbs_sjzx); SELECT * FROM pg_tables WHE…...