理解数据库存储以及查询(集合)
理解数据库存储以及查询(集合)
基本概念定义
主键集合:
定义:主键集合是由数据库表中的主键组成的一个集合。主键是表中唯一标识每一行记录的属性(或属性组合)。
特性:主键集合包含表的主键属性,作为表的核心标识载体,确保数据的唯一性和完整性。
作用:主键用于快速定位记录,是表的基本结构要素。
索引集合:
定义:索引集合是基于某个索引属性(或属性组合)以及主键构成的集合。索引是为了加速查询而创建的数据结构。
组成:索引集合通常包括索引属性(用于查询的字段)和主键(用于定位记录)。
作用:索引集合优化查询性能,减少数据检索时间。
集合概念与数据库查询:
数据库的查询操作可以看作基于集合理论的分析。表是记录的集合,查询是通过集合操作(如交、并、差)从表中提取符合条件的子集。
主键集合和索引集合提供了查询的结构化基础,主键确保唯一性,索引加速查询效率。
明确对象的集合体:
数据库中的表、视图、索引等都可以看作是一组明确对象的集合。这些对象通过主键和索引等机制组织起来,形成可操作的数据结构。
如何利用集合理解SQL查询并且优化SQL查询
一、利用集合理论理解 SQL 查询
SQL 查询的核心是将数据库表视为集合,查询操作是对这些集合进行数学运算(如交、并、差、笛卡尔积等)以提取所需数据。以下是集合理论与 SQL 查询的对应关系:
-
表作为集合:
- 数据库中的每个表可以看作一个记录(行)的集合,每行是一个元组(tuple),包含一组属性(列)。
- 例如,表
Users
是所有用户记录的集合,表Orders
是所有订单记录的集合。
-
SQL 操作与集合运算的对应:
- SELECT:从集合中提取子集,基于条件过滤(如
WHERE
子句)。- 集合视角:
SELECT * FROM Users WHERE age > 30
相当于从Users
集合中筛选出满足age > 30
的子集。
- 集合视角:
- JOIN:结合多个集合,生成新集合。
- 集合视角:
INNER JOIN
类似于集合的交集(只保留匹配的记录),CARTESIAN JOIN
是笛卡尔积。
- 集合视角:
- UNION / INTERSECT / EXCEPT:直接对应集合的并集、交集和差集。
- 例如,
SELECT id FROM Table1 UNION SELECT id FROM Table2
是Table1
和Table2
中id
的并集。
- 例如,
- GROUP BY:将集合划分为子集,并对每个子集进行聚合操作。
- 集合视角:
GROUP BY city
将记录按city
分组,每个组是一个子集。
- 集合视角:
- EXISTS / IN:检查子集是否存在或元素是否属于某个集合。
- 例如,
WHERE id IN (SELECT id FROM Table2)
检查id
是否属于Table2
的id
集合。
- 例如,
- SELECT:从集合中提取子集,基于条件过滤(如
-
集合的数学性质:
- 唯一性:集合中的元素是唯一的,这与主键的概念一致(确保记录不重复)。
- 无序性:集合本身无序,但 SQL 的
ORDER BY
可以为结果集指定顺序。 - 子集与过滤:
WHERE
和HAVING
子句从集合中提取符合条件的子集。
通过集合理论,你可以将复杂的 SQL 查询分解为基本的集合操作,从而更直观地理解查询逻辑。例如:
SELECT u.name, o.order_date
FROM Users u
INNER JOIN Orders o ON u.id = o.user_id
WHERE u.age > 30;
- 集合视角:从
Users
集合中筛选age > 30
的子集,与Orders
集合基于id = user_id
进行交集操作,输出name
和order_date
。
二、基于集合理论优化 SQL 查询
优化 SQL 查询的目标是减少计算成本(CPU、内存、IO)和执行时间。集合理论提供了一个分析框架,帮助识别冗余操作、优化集合操作顺序,并利用索引和数据库结构。以下是具体方法:
-
减少集合规模(尽早过滤):
- 集合原理:集合操作的成本与集合大小成正比,尽早减少集合规模可以显著降低计算量。
- 优化方法:
- 在
WHERE
子句中使用高选择性的条件,尽早过滤无关数据。例如:
优先使用SELECT * FROM Orders WHERE order_date = '2025-04-30' AND status = 'completed';
order_date
过滤(如果有索引),因为日期通常比status
更具选择性。 - 将过滤条件推到子查询或
JOIN
的ON
子句中。例如:
集合视角:先从-- 低效:先 JOIN 再过滤 SELECT u.name FROM Users u JOIN Orders o ON u.id = o.user_id WHERE o.order_date = '2025-04-30';-- 高效:在 JOIN 前过滤 Orders SELECT u.name FROM Users u JOIN (SELECT user_id FROM Orders WHERE order_date = '2025-04-30') o ON u.id = o.user_id;
Orders
集合中提取order_date = '2025-04-30'
的子集,再与Users
集合连接,减少笛卡尔积的规模。
- 在
-
优化集合连接(JOIN):
- 集合原理:
JOIN
是集合的笛卡尔积后过滤,成本高。优化目标是减少参与连接的记录数并选择高效的连接算法。 - 优化方法:
- 选择合适的 JOIN 类型:用
INNER JOIN
替代LEFT JOIN
(如果不需要非匹配记录),因为交集比并集更小。 - 确保索引支持:为
JOIN
的连接键(如ON u.id = o.user_id
的id
和user_id
)创建索引,加速集合匹配。 - 避免不必要的笛卡尔积:检查查询是否意外生成了全连接。例如:
修正为:-- 错误:缺少连接条件,导致笛卡尔积 SELECT u.name, o.order_date FROM Users u, Orders o WHERE u.age > 30;
SELECT u.name, o.order_date FROM Users u JOIN Orders o ON u.id = o.user_id WHERE u.age > 30;
- 调整 JOIN 顺序:将小表放在连接的早期,减少中间结果集的大小。数据库优化器通常会自动调整,但复杂查询可能需要手动优化。
- 选择合适的 JOIN 类型:用
- 集合原理:
-
利用主键和索引集合:
- 集合原理:主键和索引是预定义的子集,查询时利用这些子集可以快速定位数据。
- 优化方法:
- 为高频查询的过滤条件(如
WHERE
和JOIN
的列)创建索引。例如:
这将CREATE INDEX idx_orders_date ON Orders(order_date);
order_date
组织为一个有序的索引集合,加速查找。 - 使用覆盖索引(covering index),使查询直接从索引集合中获取数据,避免访问表数据。例如:
如果有索引SELECT user_id, order_date FROM Orders WHERE order_date = '2025-04-30';
(order_date, user_id)
,查询无需访问表,直接从索引集合获取结果。 - 确保主键查询高效,主键是唯一集合的标识,查询主键通常是最快的。
- 为高频查询的过滤条件(如
-
简化集合操作:
- 集合原理:复杂的集合操作(如多重子查询、嵌套循环)可能导致重复计算,简化逻辑可以降低成本。
- 优化方法:
- 合并子查询:将相关子查询重写为
JOIN
或WITH
(CTE)。例如:
集合视角:子查询生成了一个中间集合,重写为-- 低效:嵌套子查询 SELECT name FROM Users WHERE id IN (SELECT user_id FROM Orders WHERE order_date = '2025-04-30');-- 高效:重写为 JOIN SELECT u.name FROM Users u JOIN Orders o ON u.id = o.user_id WHERE o.order_date = '2025-04-30';
JOIN
直接操作两个集合的交集。 - 避免冗余操作:检查是否重复计算了相同的子集。例如:
合并为:-- 低效:多次计算同一子集 SELECT name FROM Users WHERE id IN (SELECT user_id FROM Orders WHERE status = 'completed') UNION SELECT name FROM Users WHERE id IN (SELECT user_id FROM Orders WHERE status = 'completed');
使用SELECT DISTINCT name FROM Users u JOIN Orders o ON u.id = o.user_id WHERE o.status = 'completed';
DISTINCT
确保集合唯一性,减少重复计算。
- 合并子查询:将相关子查询重写为
-
分析查询计划(EXPLAIN):
- 集合原理:查询计划显示数据库如何执行集合操作,揭示集合的大小和操作顺序。
- 优化方法:
- 使用
EXPLAIN
或EXPLAIN ANALYZE
查看查询计划,检查是否有全表扫描(高成本操作)或未使用的索引。 - 例如,如果查询计划显示对
Orders
表的全表扫描,考虑为WHERE
条件列添加索引。 - 检查
JOIN
的顺序是否合理,必要时使用提示(hints)调整优化器行为。
- 使用
-
利用集合的并行性:
- 集合原理:大集合可以分割为子集并行处理,现代数据库支持并行查询。
- 优化方法:
- 确保数据库配置支持并行查询(如 PostgreSQL 的
max_parallel_workers
)。 - 对大表分区(partitioning),将集合拆分为更小的子集。例如:
分区后,查询CREATE TABLE Orders (order_id INT,order_date DATE,user_id INT ) PARTITION BY RANGE (order_date);
WHERE order_date = '2025-04-30'
只扫描相关分区集合,减少 IO。
- 确保数据库配置支持并行查询(如 PostgreSQL 的
三、示例:集合视角优化复杂查询
假设有以下查询:
SELECT u.name, COUNT(o.order_id) as order_count
FROM Users u
LEFT JOIN Orders o ON u.id = o.user_id
WHERE u.age > 30
GROUP BY u.name
HAVING COUNT(o.order_id) > 0;
集合分析:
Users
集合:所有用户记录。Orders
集合:所有订单记录。WHERE u.age > 30
:从Users
集合中提取age > 30
的子集。LEFT JOIN
:将Users
子集与Orders
集合基于id = user_id
连接,保留所有Users
记录。GROUP BY u.name
:按name
将连接结果划分为子集。COUNT(o.order_id) > 0
:过滤出至少有一个订单的子集。
优化建议:
-
替换 LEFT JOIN 为 INNER JOIN:
HAVING COUNT(o.order_id) > 0
意味着只需要有订单的用户,因此可以用INNER JOIN
减少结果集:
集合视角:SELECT u.name, COUNT(o.order_id) as order_count FROM Users u INNER JOIN Orders o ON u.id = o.user_id WHERE u.age > 30 GROUP BY u.name;
INNER JOIN
只保留Users
和Orders
的交集,减少无效记录。
-
添加索引:
- 为
Users.age
创建索引:CREATE INDEX idx_users_age ON Users(age);
- 为
Orders.user_id
创建索引:CREATE INDEX idx_orders_user_id ON Orders(user_id);
- 集合视角:索引将
age
和user_id
组织为高效的子集,加速过滤和连接。
- 为
-
检查 GROUP BY 效率:
- 如果
name
不是唯一,考虑是否需要DISTINCT
或调整分组键。 - 集合视角:确保分组操作不会生成过多子集。
- 如果
优化后查询:
SELECT u.name, COUNT(o.order_id) as order_count
FROM Users u
INNER JOIN Orders o ON u.id = o.user_id
WHERE u.age > 30
GROUP BY u.name;
- 集合规模更小(只包含匹配记录)。
- 索引支持快速定位
age > 30
和user_id
匹配的记录。
四、总结
-
理解 SQL 查询:
- 将表视为集合,SQL 操作(
SELECT
、JOIN
、GROUP BY
等)对应集合运算(子集提取、交集、分组等)。 - 分解复杂查询为基本的集合操作,理清逻辑。
- 将表视为集合,SQL 操作(
-
优化 SQL 查询:
- 尽早过滤:减少集合规模,使用高选择性条件。
- 优化连接:选择合适的
JOIN
类型,确保索引支持。 - 利用索引:将主键和索引视为高效子集,加速查询。
- 简化逻辑:合并子查询,避免冗余操作。
- 分析计划:使用
EXPLAIN
检查集合操作的成本。 - 并行与分区:分割大集合,加速处理。
通过集合理论,你可以系统化地分析和优化 SQL 查询,不仅提高性能,还能更深入理解数据库的工作原理。
相关文章:
理解数据库存储以及查询(集合)
理解数据库存储以及查询(集合) 基本概念定义 主键集合: 定义:主键集合是由数据库表中的主键组成的一个集合。主键是表中唯一标识每一行记录的属性(或属性组合)。 特性:主键集合包含表的主键属性…...
(Go Gin)Gin学习笔记(四)Gin的数据渲染和中间件的使用:数据渲染、返回JSON、浅.JSON()源码、中间件、Next()方法
1. 数据渲染 1.1 各种数据格式的响应 json、结构体、XML、YAML类似于java的properties、ProtoBuf 1.1.1 返回JSON package mainimport ("github.com/gin-gonic/gin""net/http" )func main() {r : gin.Default()r.POST("/demo", func(res *gi…...
机器视觉橡胶制品检测的应用
橡胶制品在生产过程中易出现划痕、气泡、缺料、毛边、杂质嵌入等多种缺陷,这些缺陷往往微小且随机分布,人工检测不仅耗时,漏检率也居高不下。尤其在汽车密封件、医疗硅胶制品等高端领域,微米级的缺陷都可能导致产品失效࿰…...
JavaScript:从JS的执行机制到location对象
一、JS执行机制 (1)JS是单线程 JavaScript语言的一大特点就是单线程,也就是同一时间只能做一件事。因为JavaScript是为了处理页面中的用户交互,以及制作DOM二诞生的。比如我们对某个DOM元素进行添加和删除操作,这个不…...
Sigmoid函数简介及其Python实现
文章目录 一、Sigmoid 函数简介1. 数学公式2. 关键特性3. 应用场景 二、Python 实现1. 使用 math 库 (适用于单个数值)2. 使用 numpy 库 (适用于数值、列表、数组、矩阵)3. 使用 scipy.special.expit (数值稳定) 三、小结 一、Sigmoid 函数简介 Sigmoid 函数(也称为…...
全局事件总线EventBus的用法
全局事件总线 EventBus 在前端开发中是一种用于实现组件间通信的机制,适用于兄弟组件或跨层级组件间的数据传递。 1. 创建全局 EventBus 实例 在前端项目中,先创建一个全局的 EventBus 实例。在 Vue 中,可以通过创建一个新的 Vue 实例来实现…...
嵌入式Linux系统中的线程信号处理:策略与实践
在嵌入式Linux系统的开发中,多线程编程是提升系统性能和响应速度的重要手段。然而,多线程环境下的信号处理却是一个复杂且需要细致处理的问题。信号,作为进程间通信的一种机制,在嵌入式系统中常用于处理外部事件或中断。但在多线程…...
CCM/TCM在STM32中的含义和用途
CCM/TCM在STM32中的含义和用途 CCM(Core Coupled Memory)和TCM(Tightly Coupled Memory)是ARM架构中的特殊内存类型,它们都表示与CPU核心紧密耦合的内存区域。这些内存具有一些特殊特性,使其在某些应用场景…...
【网络原理】 《TCP/IP 协议深度剖析:从网络基础到协议核心》
文章目录 一、网络基础1. 认识IP地址概念作用格式组成子网掩码 2、认识Mac地址一跳一跳的网络数据传输 3. 网络设备及相关技术集线器:转发所有端口交换机:MAC地址转换表转发对应端口主机:网络分层从上到下封装主机&路由器:ARP…...
Windows系统编译支持GPU的llama.cpp
Windows系统编译支持GPU的llama.cpp git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp mkdir build cd buildcmake .. -G "Visual Studio 17 2022" -DGGML_CUDAON -DCMAKE_BUILD_TYPERelease -DCMAKE_CUDA_ARCHITECTURES"86"cmake --b…...
Unity编辑器扩展之导出项目中所有预制体中文本组件文字内容
一、最后导出的Excel文件效果如下图所示: 二、在Unity的Editor目录下,新建一个名为FindChineseInPrefabs的C#脚本,Copy以下代码到你新建的名为FindChineseInPrefabs的C#脚本中去,最后一定要保存文件哈。 using UnityEditor; using UnityEngine; using UnityEngine.UI; usi…...
高效管理远程服务器Termius for Mac 保姆级教程
以下是 Termius for Mac 保姆级教程,涵盖安装配置、核心功能、实战案例及常见问题解决方案,助你高效管理远程服务器(如Vultr、AWS等)。 一、Termius 基础介绍 1. Termius 是什么? 跨平台SSH客户端:支持Ma…...
WPF框架中常用算法
WPF框架中常用算法与实现 一、排序算法 1. 快速排序 (Quick Sort) 应用场景:大数据集合排序、性能敏感场景 public static void QuickSort(IList<int> list, int left, int right) {if (left < right){int pivotIndex Partition(list, left, r…...
【Java函数式编程-58】Java函数式编程深度解析
函数式编程(Functional Programming)作为一种编程范式,近年来在Java生态中获得了越来越多的关注和应用。自Java 8引入Lambda表达式和Stream API以来,函数式编程风格在Java开发中逐渐普及。本文将深入探讨Java中函数式编程的核心概念、实践技巧以及在实际…...
解决vscode cmake提示检测到 #include 错误
一、问题 cmake已经包含了动态库文件,依然提示“检测到 #include 错误。请更新 includePath。” 二、解决方案 Ctrl Shift P进入CPP编辑配置,然后在JSON中加入下面一行: "configurationProvider": "ms-vscode.cmake-tools&…...
Microsoft .NET Framework 4.8 离线安装包 下载
简介Microsoft .NET Framework 4.8 是对 Microsoft .NET Framework 4、4.5、4.5.1、4.5.2、4.6、4.6.1、4.6.2、4.7、4.7.1 和 4.7.2 的高度兼容的就地更新。 脱机程序包可用于因无法连接 Internet 而导致 Web 安装程序无法使用的情况。 此包比 Web 安装程序大,并且…...
部署若依项目到服务器遇到的问题
以下是本次部署遇到的问题及解决方法 1、问题:docker一直出现“> ERROR [internal] load metadata for docker.io/library/xxx“的问题 ERROR: failed to solve: openjdk:8-jdk-alpine: failed to resolve source metadata for docker.io/libran y/ope…...
Elasticsearch--自带“搜索引擎“的数据库
一、核心原理 1. 倒排索引(Inverted Index) 基本概念 将文档中的每个词条(term)映射到包含它的文档列表上,正如图书馆目录将关键词映射到书籍编号。工作流程 分词(Analysis):文本切…...
malloc的实现原理
malloc 是 C 语言中动态内存分配的核心函数,其实现原理涉及操作系统内存管理、数据结构和算法设计。以下是其核心实现原理的简化分析: 1. 内存池管理 基本思想:malloc 通过管理一个 内存池(堆)动态分配内存。操作系统…...
垃圾收集GC的基本理解
垃圾收集的基本理解 GC 的基本算法 标记清除 从根开始将可能被引用的对象用递归的方式进行标记(标记阶段),然后再从根开始将全部对象按顺序扫描一遍,将没有被标记的对象进行回收(清除阶段)。 大多数情况…...
JVM——Java的基本类型的实现
Java 基本类型在 JVM 中的实现 Java 作为一种广泛使用的编程语言,其在虚拟机(JVM)上的实现细节对于开发者来说至关重要。本文将详细讲解 Java 基本类型在 JVM 中的实现,去深入理解 Java 编程语言的底层工作机制。 Java 基本类型…...
临床回归分析及AI推理
在医疗保健决策越来越受数据驱动的时代,回归分析已成为临床医生和研究人员最强大的工具之一。无论是预测结果、调整混杂因素、建模生存时间还是理解诊断性能,回归模型都为将原始数据转化为临床洞察提供了统计学基础。 AI推理 然而,随着技术…...
Ubuntu 22.04 的 ROS 2 和 Carla 设置指南(其一)
重点介绍适用于 Ubuntu 22.04 的全面 ROS 2 和 Carla 设置指南。我们将首先安装 Terminator 终端,然后安装 ROS 2 依赖项,然后继续安装 ROS 2 Humble。接下来,我们将介绍如何在 Ubuntu 22.04 上安装 Carla,最后通过设置 Carla ROS…...
声明:个人从未主动把文章设置为仅vip可读
之前一直在公司忙就没看csdn这边,前几天朋友看到我的博客是仅vip可读我才发现这个 给我气笑了。。。不反馈默认同意。。。。 现在都已经改回来 写文章的初衷就是记录一下自己的学习过程,本来就是一些偏基础类的东西,还需要去买vip才能看就太…...
【大模型系列篇】Qwen3开源全新一代大语言模型来了,深入思考,更快行动
Qwen3开源模型全览 Qwen3是全球最强开源模型(MoEDense) Qwen3 采用混合专家(MoE)架构,总参数量 235B,激活仅需 22B。 Qwen3 预训练数据量达 36T,并在后训练阶段多轮强化学习,将非思…...
DeepSeek-Prover-V2-671B 简介、下载、体验、微调、数据集:专为数学定理自动证明设计的超大垂直领域语言模型(在线体验地址)
DeepSeek-Prover-V2-671B 最新发布:专为数学定理自动证明设计的超大语言模型 体验地址:Hugging Face 在线体验 推荐入口:Novita 平台直达链接(含邀请码) 一、模型简介 DeepSeek-Prover-V2-671B 是 DeepSeek 团队于 2…...
Gupta-Sproull 抗据此画线算法
本文源自于:从https://www.inf.ed.ac.uk/teaching/courses/cg/lectures/cg4_2012.pdf Gupta-Sproull是在Brensenham的画线算法基础上得到。 为了防止之前的链接失效,特地搬运一下...
idea写spark程序
使用IntelliJ IDEA编写Spark程序的完整指南 一、环境准备 安装必要软件 IntelliJ IDEA (推荐Ultimate版,Community版也可) JDK 8或11 Scala插件(在IDEA中安装) Spark最新版本(本地开发可以用embedded模式) 创建项目 打开IDEA → New Project 选择"Maven…...
视觉问答论文解析:《Skywork R1V2: Multimodal Hybrid Reinforcement Learning for Reasoning》
《Skywork R1V2: Multimodal Hybrid Reinforcement Learning for Reasoning》论文解析 一、研究背景与动机 近年来,“慢思考”多模态模型(如 OpenAI-o1、GeminiThinking、Kimi-1.5 和 Skywork-R1V)在数学和科学领域的复杂推理任务中取得了显…...
修改linux账号名
修改linux账号名 结论是步骤1.临时创建一个辅助账户执行操作2.注销当前账户,登录 tempadmin 用户。3.使用它修改 旧用户名olduser:4.(可选)删除临时用户: 结论是 不可以直接修改,要么需要创建一个临时用户来打辅助. …...
计算机图形学:(二)MVP变换示例
前言 当在阅读计算机图形学系列的书籍时,会发现大部分图书每章内容都如出一辙。从个人实际体会来讲,虽然能理解书中大部分的知识,但到了实际使用时却有点抓耳挠腮。因此,在写了计算机图形学:(一)…...
PostgreSQL中的SSL(2)
PGSQL数据库的默认隔离级别是读提交,并且同时支持可重复读和序列化模式。但是在9.1之前的版本中,序列化模式是采用快照隔离来实现,并非是真正的序列化模式。 这样的话就会存在一个问题,那就是写偏序(Write Skew&#…...
Linux 部署以paddle Serving 的方式部署 PaddleOCR CPU版本
强烈建议您在Docker内构建Paddle Serving,更多镜像请查看Docker镜像列表。 提示-1:Paddle Serving项目仅支持Python3.6/3.7/3.8/3.9,接下来所有的与Python/Pip相关的操作都需要选择正确的Python版本。 提示-2:以下示例中GPU环境均…...
苏德战争前期苏联损失惨重(马井堂)
苏德战争前期(1941年6月22日德国发动“巴巴罗萨行动”至1941年底至1942年初)是苏联在二战中损失最惨重的阶段之一。以下是主要方面的损失概述: 一、军事损失 人员伤亡与俘虏 至1941年底,苏军伤亡约300万人ÿ…...
SI5338-EVB Usage Guide(LVPECL、LVDS、HCSL、CMOS、SSTL、HSTL)
目录 1. 简介 1.1 EVB 介绍 1.2 Si5338 Block Diagram 2. EVB 详解 2.1 实物图 2.2 基本配置 2.2.1 Universal Pin 2.2.2 IIC I/F 2.2.3 Input Clocks 2.2.4 Output Frequencies 2.2.5 Output Driver 2.2.6 Freq and Phase Offset 2.2.7 Spread Spectrum 2.2.8 快…...
LeetCode LCP40 心算挑战题解
看似一道简单的题目,实则不然,没有看评论的话,实在想不出来怎么写。 现在则由我来转述思想供大家参考理解,还是先给出示例,供大家更好的理解这个题目。 输入:cards [1,2,8,9], cnt 3输出:18解…...
Smart Link+Monitor Link组网
1.技术背景及原理 一般情况下,Smart Link只能感知与其接口直连的链路故障。将Monitor Link配置在Smart Link的上游设备上,可使Smart Link迅速感知上游链路故障,进行链路切换。Smart Link与Monitor Link配合使用,扩大了Smart Link…...
【计算机网络】TCP(传输控制协议)套接字,多线程远程执行命令编程
📚 博主的专栏 🐧 Linux | 🖥️ C | 📊 数据结构 | 💡C 算法 | 🅒 C 语言 | 🌐 计算机网络 上篇文章:UDP套接字编程(英汉字典以及多线程聊天室编写)…...
PostgreSQL 中 VACUUM FULL 对索引的影响
PostgreSQL 中 VACUUM FULL 对索引的影响 是的,VACUUM FULL 会重建表上的所有索引。这是它与普通 VACUUM 命令的一个重要区别。 一、VACUUM FULL 的工作原理 表重建过程: 创建表的全新副本只将有效数据写入新存储删除原始表文件将新文件重命名为原表名…...
DeepSeek本地部署及WebUI可视化完全指南
以下是为您整理的DeepSeek本地部署及WebUI可视化完全指南,整合了官方文档及社区实践的最佳方案: 一、环境准备 1. 硬件需求 CPU:推荐支持AVX2指令集的Intel i7或AMD Ryzen 7及以上处理器 。 GPU(可选但推荐)…...
大模型时代的新燃料:大规模拟真多风格语音合成数据集
以大模型技术为核心驱动力的人工智能变革浪潮中,语音交互领域正迎来广阔的成长空间,应用场景持续拓宽与延伸。 其中,数据作为驱动语音大模型进化的关键要素,重要性愈发凸显。丰富多样的高质量数据能够让语音大模型充分学习到语音…...
单体项目到微服务的架构演变与K8s发展是否会代替微服务
单体项目到微服务的架构演变与K8s发展是否会代替微服务 在互联网大厂Java求职者的面试中,经常会被问到关于单体项目到微服务的架构演变以及Kubernetes(k8s)的发展是否会代替微服务的相关问题。本文通过一个故事场景来展示这些问题的实际解决…...
AI驱动的决策智能系统(AIDP)和自然语言交互式分析
在当今快速变化的商业环境中,以下几个企业级系统领域最有可能成为新的热点,其驱动力来自数字化转型加速、AI技术爆发、全球化协同需求以及ESG(环境、社会、治理)合规压力的叠加 1. AI驱动的决策智能系统(AIDP…...
kubernetes》》k8s》》Service 、Ingress 区别
K8S>>Service 资料 K8S >>Ingress 资料 Ingress VS Service 物理层数据链路层网络层传输层会话层表示层应用层 Ingress是一种用于暴露HTTP和HTTPS路由的资源,它提供了七层(应用层)的负载均衡功能。Ingress可以根据主机名、…...
全面接入!Qwen3现已上线千帆
百度智能云千帆正式上线通义千问团队开源的最新一代Qwen3系列模型,包括旗舰级MoE模型Qwen3-235B-A22B、轻量级MoE模型Qwen3-30B-A3B。千帆大模型平台开源模型进一步扩充,以多维开放的模型服务、全栈模型开发、应用开发工具链、多模态数据治理及安全的能力…...
Python-日志检测异常行为的详细技术方案
以下是根据行为日志检测异常行为的详细技术方案,涵盖数据收集、特征工程、模型选择、部署与优化的全流程: 1. 数据收集与预处理 1.1 数据来源 行为日志通常包括以下类型: 用户行为日志:点击、登录、交易、页面停留时间等。系统…...
DeepSeek-Prover-V2-671B最新体验地址:Prover版仅适合解决专业数学证明问题
DeepSeek-Prover-V2-671B最新体验地址:Prover版仅适合解决专业数学证明问题 DeepSeek 团队于 2025 年 4 月 30 日正式在Hugging Face开源了其重量级新作 —— DeepSeek-Prover-V2-671B,这是一款专为解决数学定理证明和形式化推理任务而设计的超大规模语…...
Java写数据结构:队列
1.概念: 队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out) 入队列:进行插入操作的一端称为队尾(Tail/Rear) 出队列…...
LeetCode 2905 找出满足差值条件的下标II 题解
示例 nums [8, 3, 12, 5, 1, 10, 7, 13] indexDifference 3 valueDifference 6答案 [maxIdx, j] [0, 4]我的思路是直接枚举写,但这题是中等题,一定不会让你好过的,所以也是喜提了超时,先说一下我的做题思路吧。 其实很简单就…...
【思考】欧洲大停电分析
当地时间4月28日中午,西班牙和葡萄牙发生了大规模停电事故,两国多个地区的电力供应中断,波及超过5000万伊比利亚半岛民众,交通、通信、医疗等关键领域受到影响,马德里网球公开赛因停电被迫暂停,周边法国、意…...