[MySQL#1] database概述 常见的操作指令 MySQL架构 存储引擎
#1024程序员节|征文#
目录
一. 数据库概念
0.连接服务器
1. 什么是数据库
口语中的数据库
为什么数据不直接以文件形式存储,而需要使用数据库呢?
总结
二. ??基础操作
三. 主流数据库
四. 基础知识
服务器,数据库,表关系
数据逻辑存储
MySQL架构
SQL分类
存储引擎
1.何为存储引擎?
2. 存储引擎对比
在上一篇文章[MySQL#0] 详解如何在 Linux 上安装 MySQL | 常见登录问题,我们安装好了环境,接下来就来一起学习操作吧~
一. 数据库概念
0.连接服务器
mysql -h 127.0.0.1 -P 3306 -u root -p
- -h:指明登录部署了MySQL服务的主机
- -P:指明要访问的端口号
- -u:指明登录用户
- -p:指明需要输入密码
注意:
- 如果没有写-h 127.0.0.1,默认是连接本地
- 如果没有写-P 3306,默认是连接3306号端口
1.目前我们是免密码登录的,后面必须设置密码
2.密码输入的时候,是不会回显的
1. 什么是数据库
服务器角度理解数据库
在连接数据库时,我们使用的是mysql
,启动数据库服务时使用的是mysqld
。这两个分别代表什么呢?
mysql
是数据库服务的客户端。mysqld
是数据库服务的服务器端。
说明:
- 凡是可执行程序带有
d
的,通常称为守护进程。- MySQL本质:一个基于C/S(Client/Server)模式的网络服务
mysqld
就是网络服务的后端- 通常我们提到MySQL,其实指的是MySQL的客户端
mysql
。
这就是我们对数据库的第一层理解。
- 现在我们明白了为什么安装MySQL时需要通过
yum
安装mysqld
- 并启动服务后才能使用
mysql
进行连接,因为它是一个网络服务。 - 既然MySQL是网络服务,我们可以查找到它绑定的端口号。
MySQL服务是什么?
- MySQL是一种提供数据存取服务的网络程序。
口语中的数据库
数据库通常指的是,在磁盘或内存中存储的特定结构化的数据。
- 数据库可以被看作是一套存储方案,通常指的是关系型数据库,表与表之间有特定的关系,数据按照特定逻辑进行组织。
- 数据库最终还是存储在磁盘或内存中。我们暂时只考虑磁盘,存储在磁盘中的一组数据库文件就可以称为数据库,即一批数据以数据库的形式存储在磁盘中。
我们可以区分如下几点:
- 数据库服务:
mysqld
- 数据库客户端:
mysql
- 数据库:磁盘上存储的一套数据库方案(文件)
数据库的本质仍然是存储在磁盘中的某种结构化数据,虽然我们可能对它的具体形式还不完全理解。文件是我们熟悉的存储形式
为什么数据不直接以文件形式存储,而需要使用数据库呢?
虽然文件提供了数据存储的基本功能,但它没有提供对数据内容的管理能力。
- 举个例子,假设一个文件有10万行内容,每行都是一个IP地址,现在需要统计以
**127**
开头的IP地址个数。 - 程序员需要打开文件,按行读取并手动统计,这是一项耗时的工作。
- 文件只提供基本的读写功能,而没有数据管理能力,因此不方便。
数据库的意义: 它是一种数据存储的解决方案。程序员只需提出查询需求,数据库就会根据需求分析并返回结果。相当于是将数据管理起来了,使数据查询更加方便
例如,如果将10万个IP地址存储到数据库中,查询以127
开头的IP地址时,数据库会进行内部处理,最终返回统计结果,而程序员无需自己编写复杂的代码。
总结数据库的作用
数据库本质上是一套对外提供数据存储和管理的解决方案。它包括:
- 数据库客户端(
mysql
) - 数据库服务器(
mysqld
) - 存储在磁盘中的数据库文件
数据库的作用是让客户端提出需求后,服务器从数据库文件中进行操作,最终将结果返回客户端,展示给用户。
理解
- 当一个MySQL客户端mysql提出一个需求(查询
- MySQL服务端mysqld就去数据库文件当中自己进行增、删、查、改等,然后把结果返回给mysqld
- 然后mysqld把结果交给mysql,然后就显示给用户了
总结
最后的结论——什么是数据库?
- 局部理解: 数据库是存储在磁盘中的结构化数据文件,这些文件能够被
mysqld
服务进程进行增删查改。 - 宏观理解: 数据库是一整套数据存储的解决方案。
文件保存数据的缺点:
- 安全性问题
- 不利于数据查询和管理
- 不利于存储海量数据
- 程序中控制不便
数据库的存储介质:
- 磁盘
- 内存
为了解决文件存储的这些问题,专家们设计了数据库,能够更有效地管理数据。数据库的使用和管理是衡量程序员水平的重要指标。
二. ??基础操作
见一见数据库
- 建立数据库,本质就是Linux下的一个目录
- 在数据库内建立表,本质就是在Linux下创建对应的文件即可!
- 数据库本质其实也是文件!!只不过这些文件并不由程序员直接操作,而是由数据库服务帮我们进行操作
使用 MySQL 建立一个数据库,建立一张表结构,插入一些数据,最后对比 MySQL 在 Linux 中的表现
-
**??**查看当前数据库
show databases;
此时可以查看当前所有存在的数据库。
-
**??****数据库在哪里存放?**我们可以通过查看 MySQL 的配置文件,找到数据库的存储路径:
vim /etc/my.cnf
在配置文件中,可以看到 datadir
字段,它指明了 MySQL 服务数据存放的路径。
切换到这个路径下,可以看到数据目录中存放的数据内容,包含普通文件和目录。
细心观察,您可能已经发现了一些有趣的现象,我们下面讲讨论
-
??****创建数据库接下来,我们通过 MySQL 客户端向
mysqld
服务端发出创建数据库的请求:create database helloworld;
创建数据库后,原本数据目录中没有 helloworld
这个目录,现在会多出一个名为 helloworld
的目录。
进入该目录后,可以发现除了一个配置文件外,并没有其他文件。
所谓建立数据库,实际上是在 Linux 系统下创建了一个目录。
当客户端发出 create database
的 SQL 指令后,mysqld
进程识别指令并在磁盘上创建一个目录。
这就是数据库在系统层面的表现。
-
??****选择数据库在创建数据库后,需要选择操作的数据库:
use helloworld;
就像在文件系统中选择了一个具体的目录一样,use helloworld
代表接下来所有的操作都将在该数据库下进行。
-
??****创建数据库表接下来,创建一个名为
student
的表结构:create table student(
name varchar(32),
age int,
gender varchar(2)
);
表的字段定义了数据的属性列及其类型。建立了表之后,在数据库目录中会生成两个与该表相关的文件。
- 在数据库内建立表,本质就是在Linux下创建对应的文件即可!
- 数据库本质其实也是文件!!只不过这些文件并不是由程序员直接操作,而是由数据库服务帮(mysqld)我们进行操作。
-
??****向表中插入数据现在向
student
表中插入一些数据:insert into student (name, age, gender) values (‘张三’, 23, ‘男’);
insert into student (name, age, gender) values (‘李四’, 24, ‘女’);
insert into student (name, age, gender) values (‘王五’, 25, ‘男’);
在 name
、age
、gender
三列中插入相应的数据。values
后跟的是要插入的具体值。
-
??****查询表中的数据使用以下命令查询刚才插入的数据:
select * from student;
这会返回表中的所有记录。
总结
- 数据库的创建本质:在 Linux 系统下创建一个目录。
- 表****的创建本质:创建相应的文件。
- 数据存储的本质:将数据以结构化的方式存储到这些文件中。
- 程序员不需要直接操作文件系统,而是通过 SQL 语句与 MySQL 服务交互,服务负责在磁盘上执行具体的操作。
操作总结
show
creat
use
creat table //创建一张表
insert //插入数据
注意:
- 输入时 mysql 命令时,要加 ;
- mysql 中有很多库,库中又有很多的表
- 程序员不关心文件格式,只关心数据和想做什么,交给 sql 去实现即可
三. 主流数据库
以下是根据您的要求整理的内容格式:
MySQL:
- 世界上最受欢迎的数据库之一,由甲骨文公司拥有。
- 并发性能良好,但可能不适合处理非常复杂的业务逻辑。
- 主要应用于电商、社交网络服务(SNS)、论坛等场景,对简单的SQL查询处理效果好。
- 总结:效率良好,生态完善,免费
SQLite:
- 轻量级数据库引擎,遵循ACID属性的关系型数据库管理系统。
- 设计初衷是作为嵌入式解决方案,集成于小型C语言库中。
- 极其适合资源受限的环境,如嵌入式系统,通常仅需几百KB内存即可运行。
SQL Server:
- 微软出品的企业级数据库产品。
- 深受.NET开发者喜爱,适用于中大型项目开发。
Oracle:
- 也是甲骨文公司的旗舰数据库产品。
- 针对大型企业级应用设计,能够支持复杂的业务流程。eg 银行(需付费,性能更好
- 相较于MySQL,在高并发场景下的表现可能略逊一筹。
PostgreSQL:
- 起源于加州大学伯克利分校的一个开源关系型数据库项目。
- 支持广泛的高级功能,无论是个人使用、商业部署还是科学研究均可免费获取、修改和分发源代码。
H2 Database:
- 一个完全基于Java编写的轻量级嵌入式数据库。
- 可以直接以类库的形式集成到应用程序内部,便于快速开发与测试。
四. 基础知识
服务器,数据库,表关系
- 所谓安装数据库服务器,只是在机器上安装了一个数据库管理系统程序,这个管理程序可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库
- 为保存应用中实体的数据,一般会在数据库中创建多个表,以保存程序中实体的数据
- 数据库服务器、数据库和表的关系如下:
数据逻辑存储
数据逻辑存储在表中插入数据后,这些数据在逻辑上是以行列式的结构存储的。
- 一行表示一个实体(例如一个人)
- 一列表示实体的某个属性(如姓名、年龄、性别)。
数据库内的数据在物理上并不是直接存储为表的形式,而是通过 MySQL 特定的协议和格式进行存储和管理。
MySQL架构
MySQL是一个可移植的数据库,几乎能在当前所有的操作系统上运行
- 如 Unix/Linux、Windows、 Mac和Solaris
- 各种系统在底层实现方面各有不同,但是 MySQL基本上能保证在各个平台上的物理体系结构的一致性
最上面是MySQL客户端,现在我们在Linux下是以命令行方式使用数据库,后面还会以C/C++,图像化界面使用数据库。
整体对于一个MySQL Server来讲主要功能由三层构成:
- 第一层:连接池 —— 主要是安全连接管理(连接管理、鉴权、保证安全…)。
- 中间这一层 —— 比如说客户端会下达各种SQL指令,收到指令然后会对指令做各种语法、词法分析,甚至会对SQL语句做一定程度优化按照SQL协议然后下达给下一层。
- 第三层:存储引擎 —— 匹配的就是一个一个存储引擎,作用有点像计算机体系结构中的驱动。下面可能有不同种类的引擎,这些存储引擎从上层接收下达下来的经过词法语法调优过的SQL语句,然后存储引擎对这些SQL语句解释,说白了最下面这一层才是真正干事的,它帮我们去访问指定的数据库文件,访问指定的表。把数据进行增删查改。
怎么会有这么多存储引擎呢?
- 主要还是因为数据库是给我们提供数据存储服务的,但是这个数据有种类的差别,有的是文档型的,有的是二进制型的,有的是大文件型的等等
- 所以针对不同种类的数据的需求可能采用不同的存储方案
- 所以MySQL给我们提供各种各样的搜索引擎,诸如MyISAM适合大文件读取,InnoDB有很丰富的索引支持可以方便进行快速的搜索查找。
- 所以可以针对不同的场景由用户来配置MySQL底层,采用不同的存储引擎来满足上层的存储需求。
总结一下MySQL Server有三层:
- 第一层:安全连接管理
- 第二层:词法、语法分析,SQL语句优化
- 第三层:解释 SQL 语句,具体完成数据存储方案
- 最下面一层:就是它依赖的对应文件系统,帮我们把数据以二进制方式存到特定的目录下然后构建特定的普通文件把数据存储好。
最终总结一下,MySQL依旧是一个文件系统,只不过处于OS提供的文件系统之上的一套存储解决方案。
最后一点,MySQL提供这么多的解决方案,它是支持热插拔的可以理解成插件一样。我们想选择哪一个就把哪一个存储引擎加载到MySQL里。
SQL分类
(结合系统层理解
DDL [data definition language] 数据定义语言,用来维护存储数据的结构
- 代表指令:create,drop,,alter**(目录**
DML [data manipulation language] 数据操纵语言,用来对数据进行操作
- 代表指令: insert,delete,update**(文件**
DML中又单独分了一个DQL,数据查询语言
- 代表指令: select(打印文件
DCL [Data Control Language] 数据控制语言,主要负责权限管理和事务
- 代表指令: grant,revoke,commit
也可以类似于数据结构来理解:
- DDL: 定义一个链表
- DML: 对链表增删查改
存储引擎
1.何为存储引擎?
- 存储引擎:数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法
- MySQL的核心:插件式存储引擎,支持多种****存储引擎(解释 SQL 语句
- 查看存储引擎:
**show engines;**
2. 存储引擎对比
每一种存储引擎都有自己对应的一大堆功能。大部分情况下MySQL常用的存储引擎是MyISAM,InnoDB。其中更常用的是InnoDB。
之后会再具体的讲到~下篇文章见
相关文章:
[MySQL#1] database概述 常见的操作指令 MySQL架构 存储引擎
#1024程序员节|征文# 目录 一. 数据库概念 0.连接服务器 1. 什么是数据库 口语中的数据库 为什么数据不直接以文件形式存储,而需要使用数据库呢? 总结 二. ??基础操作 三. 主流数据库 四. 基础知识 服务器,数据库&…...
WebAssembly:前后端开发的未来利器
引言 在互联网的世界里,前端和后端开发一直是两块重要的领域。而 JavaScript 长期以来是前端的霸主,后端则有各种语言诸如 Java、Python、Node.js、Go 等等。然而,近年来一个名为 WebAssembly (Wasm) 的技术正在逐渐改变这一格局。它的高性能…...
Spring Task之Cron表达式
🌟 Spring Task高能预警:你以为的Cron表达式可能都是错的!【附实战避坑指南】 开篇暴击:为什么你的定时任务总在凌晨3点翻车? “明明设置了0 0 2 * * ?,为什么任务每天凌晨3点执行?” —— 来…...
deepseek API 调用-python
【1】创建 API keys 【2】安装openai SDK pip3 install openai 【3】代码: https://download.csdn.net/download/notfindjob/90343352...
数字滤波器的分类
数字滤波器可以根据不同的标准进行分类,以下是几种常见的分类方式: 1. 按实现结构分类 FIR滤波器(有限脉冲响应滤波器) - 特点:系统的脉冲响应在有限时间内衰减到零。 - 优点:线性相位特性(保…...
iOS 老项目适配 #Preview 预览功能
前言 iOS 开发者 最憋屈的就是UI 布局慢,一直以来没有实时预览功能,虽然swiftUI 早就支持了,但是目前主流还是使用UIKit在布局,iOS 17 苹果推出了 #Preview 可以支持UIKit 实时预览,但是仅仅是 iOS 17,老项目怎么办呢?于是就有了这篇 老项目适配 #Preview 预览 的文章,…...
高等代数笔记—域与一元多项式
域与环 数域 F F F:至少包含两个元素且对加减乘除运算封闭的复数集合 F F F,其中作除运算时除数不为0。 封闭:集合 F F F中的两个元素作某一运算的结果仍属于集合 F F F,则称 F F F对该运算封闭。 Q , R , C \mathbb{Q}, \mathbb…...
【C语言设计模式学习笔记1】面向接口编程/简单工厂模式/多态
面向接口编程可以提供更高级的抽象,实现的时候,外部不需要知道内部的具体实现,最简单的是使用简单工厂模式来进行实现,比如一个Sensor具有多种表示形式,这时候可以在给Sensor结构体添加一个enum类型的type,…...
2.Python基础知识:注释、变量以及数据类型、标识符和关键字、输入函数、输出函数、运算符、程序类型转换
1. 注释 注释是用来解释代码,增强代码可读性的部分。在 Python 中,注释分为单行注释和多行注释。 单行注释:以 # 开头,后面的内容都被视为注释。 # 这是一个单行注释 print("Hello, World!") # 输出 "Hello, Wor…...
介绍10个比较优秀好用的Qt相关的开源库
记录下比较好用的一些开源库 1. Qt中的日志库“log4qt” log4qt 是一个基于 Apache Log4j 设计理念的 Qt 日志记录库,它为 Qt 应用程序提供了强大而灵活的日志记录功能。Log4j 是 Java 领域广泛使用的日志框架,log4qt 借鉴了其优秀的设计思想ÿ…...
利用Muduo库实现简单且健壮的Echo服务器
一、muduo网络库主要提供了两个类: TcpServer:用于编写服务器程序 TcpClient:用于编写客户端程序 二、三个重要的链接库: libmuduo_net、libmuduo_base、libpthread 三、muduo库底层就是epoll线程池,其好处是…...
渗透测试之文件包含漏洞 超详细的文件包含漏洞文章
目录 说明 通常分为两种类型: 本地文件包含 典型的攻击方式1: 影响: 典型的攻击方式2: 包含路径解释: 日志包含漏洞: 操作原理 包含漏洞读取文件 文件包含漏洞远程代码执行漏洞: 远程文件包含…...
高性能 :DeepSeek-V3 inference 推理时反量化实现 fp8_cast_bf16
FP8 (8 bits) & FP16 (16 bits) FP8 和 BF16 都是浮点数格式(floating-point formats),float通过科学计数法表示数据,float [符号位指数位系数位] FP8 (8 bits):SEEEMMMMFP16 (16 bits):SEEEEEMMMMM…...
kakailio官网推荐的安装流程ubuntu 22.04
https://kamailio.org/docs/tutorials/6.0.x/kamailio-install-guide-git/ # 非必须项 wget -O- https://deb.kamailio.org/kamailiodebkey.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/kamailio.gpg在/etc/apt/sources.list文件追加以下内容 deb [signed-by/usr/sh…...
能否通过蓝牙建立TCP/IP连接来传输数据
前言: 最近在做一个项目时,产生了一个疑问:能否通过蓝牙建立TCP/IP连接来传输数据 查阅了一些文章,可以得出结论:不行 下面是我截取的两篇个人认可的文章的回答: 文章一: 蓝牙是一种短距离无…...
git基础使用--1--版本控制的基本概念
文章目录 git基础使用--1--版本控制的基本概念1.版本控制的需求背景,即为啥需要版本控制2. 集中式版本控制SVN3. 分布式版本控制 Git4. SVN和Git的比较 git基础使用–1–版本控制的基本概念 1.版本控制的需求背景,即为啥需要版本控制 先说啥叫版本&…...
高端入门:Ollama 本地高效部署DeepSeek模型深度搜索解决方案
目录 一、Ollama 介绍 二、Ollama下载 2.1 官网下载 2.2 GitHub下载 三、模型库 四、Ollmal 使用 4.1 模型运行(下载) 4.2 模型提问 五、Ollama 常用命令 相关推荐 一、Ollama 介绍 Ollama是一个专为在本地机器上便捷部署和运行大型语言模型&…...
高级java每日一道面试题-2025年01月30日-框架篇[SpringBoot篇]-如何理解 Spring Boot 配置加载顺序 ?
如果有遗漏,评论区告诉我进行补充 面试官: 如何理解 Spring Boot 配置加载顺序 ? 我回答: 在 Java 高级面试中讨论 Spring Boot 配置加载顺序时,理解其机制对于有效管理和调试应用程序配置至关重要。Spring Boot 通过一系列预定义的规则来确定如何加载和覆盖配置…...
代码随想录day06
242.有效的字母异位词 刚学哈希表想着使用unordered_set来实现,结果无法通过,原因是对字母异位词理解有问题,字母异位词是通过重新排列不同单词或短语的字母而形成的单词或短语,并使用所有原字母一次。对字母出现的次数有要求&am…...
C#常用744单词
1.visual 可见的 2.studio 工作室 3.dot 点 4.net 网 5.harp 尖端的,锋利的。 6.amework 骨架,构架,框架 7.beta 测试版,试用版 8.XML(全称:eXtensible Markup Language)…...
14.PPT:中国注册税务师协会宣传【26】
目录 NO12 NO3/4/5 NO678 【文本框水平/垂直居中】【文本框内容水平/垂直居中】 NO12 坑:注意❗Word文档的PPt素材.docx的标题大纲是混乱的,虽然他设置了,所以我们需要重新设置 设计→主题视图→幻灯片母版→删除版式插入logo NO3/4…...
Python大数据可视化:基于Python的王者荣耀战队的数据分析系统设计与实现_flask+hadoop+spider
开发语言:Python框架:flaskPython版本:python3.7.7数据库:mysql 5.7数据库工具:Navicat11开发软件:PyCharm 系统展示 管理员登录 管理员功能界面 比赛信息管理 看板展示 系统管理 摘要 本文使用Python与…...
简单3步部署本地国产大模型DeepSeek大模型
简单3步部署本地国产大模型DeepSeek大模型 DeepSeek是最近非常火的开源大模型,国产大模型 DeepSeek 凭借其优异的性能和对硬件资源的友好性,受到了众多开发者的关注。 无奈,在使用时候deepseek总是提示服务器繁忙,请稍后再试。 …...
Redis常见数据类型与编码方式
⭐️前言⭐️ 本小节围绕Redis中常见的数据类型与编码方式展开。 🍉欢迎点赞 👍 收藏 ⭐留言评论 🍉博主将持续更新学习记录收获,友友们有任何问题可以在评论区留言 🍉博客中涉及源码及博主日常练习代码均已上传GitHu…...
利用matlab寻找矩阵中最大值及其位置
目录 一、问题描述1.1 max函数用法1.2 MATLAB中 : : :的作用1.3 ind2sub函数用法 二、实现方法2.1 方法一:max和find2.2 方法二:max和ind2sub2.3 方法对比 三、参考文献 一、问题描述 matlab中求最大值可使用函数max,对于一维向量࿰…...
解锁云电脑爽玩TGA游戏,ToDesk、海马云等多款云电脑游戏横测
作为一名游戏爱好者,我深入研究了云电脑技术在游戏娱乐中的应用。通过对比传统游戏机与云电脑的成本效益,我发现云电脑以其低成本和灵活性脱颖而出。我以自身为例,分析了云电脑如何满足对游戏体验的高要求。在测评中,我选择了ToDe…...
蓝桥杯思维训练(五)
文章目录 子集II1191.K次串联后最大子数组之和 子集II 子集II 思路分析: 求解子集的问题的关键就是,通过递归与回溯,我们就是得确定以某个元素开始的子集,对于这个题目来说,比较麻烦的一点就是,存在重复的…...
kaggle视频行为分析1st and Future - Player Contact Detection
这次比赛的目标是检测美式橄榄球NFL比赛中球员经历的外部接触。您将使用视频和球员追踪数据来识别发生接触的时刻,以帮助提高球员的安全。两种接触,一种是人与人的,另一种是人与地面,不包括脚底和地面的,跟我之前做的这…...
2025 CCF BDCI|“基于TPU平台的OCR模型性能优化”一等奖作品
2024年12月,中国计算机学会在海南博鳌成功举办了第十二届CCF大数据与计算智能大赛(简称2024 CCF BDCI)。本届比赛的算能赛道吸引了1748名选手报名,经过激烈角逐,北京航空航天大学的“常务副SOTA”团队脱颖而出…...
结合深度学习、自然语言处理(NLP)与多准则决策的三阶段技术框架,旨在实现从消费者情感分析到个性化决策
针对电商个性化推荐场景的集成机器学习和稳健优化三阶段方案。 第一阶段:在线评论数据处理,利用深度学习和自然语言处理技术进行特征挖掘,进而进行消费者情感分析,得到消费者偏好 在第一阶段,我们主要关注如何通过深度学习和自然语…...
Linux系统安装Nginx详解(适用于CentOS 7)
目录 1. 更新系统包 2. 安装EPEL仓库 3. 安装Nginx 4. 启动Nginx服务 5. 设置Nginx开机自启 6. 检查Nginx状态 7. 配置防火墙 8. 访问Nginx默认页面 9. 配置Nginx(可选) 10. 重启Nginx 解决步骤 1. 检查系统版本 2. 移除错误的 Nginx 仓库 …...
Qt常用控件 输入类控件
文章目录 1.QLineEdit1.1 常用属性1.2 常用信号1.3 例子1,录入用户信息1.4 例子2,正则验证手机号1.5 例子3,验证输入的密码1.6 例子4,显示密码 2. QTextEdit2.1 常用属性2.2 常用信号2.3 例子1,获取输入框的内容2.4 例…...
[LeetCode]全排列I,II
全排列I 给定一个不含重复数字的整数数组 nums ,返回其 所有可能的全排列 。可以 按任意顺序 返回答案。 示例 1: 输入:nums [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]示例 2: 输入࿱…...
力扣.270. 最接近的二叉搜索树值(中序遍历思想)
文章目录 题目描述思路复杂度Code 题目描述 思路 遍历思想(利用二叉树的中序遍历) 本题的难点在于可能存在多个答案,并且要返回最小的那一个,为了解决这个问题,我门则要利用上二叉搜索树中序遍历为有序序列的特性,具体到代码中&a…...
Spring 核心技术解析【纯干货版】- VIII:Spring 数据访问模块 Spring-Tx 模块精讲
在企业级开发中,事务管理是保障数据一致性和完整性的重要手段。Spring 作为 Java 生态中广泛使用的框架,其事务管理模块(Spring-Tx)不仅提供了强大的功能,还极大地简化了开发者在不同技术栈中的事务处理工作。无论是编…...
Vue混入(Mixins)与插件开发深度解析
Vue混入(Mixins)与插件开发深度解析 Vue混入(Mixins)与插件开发深度解析1. Vue混入(Mixins)核心概念1.1 什么是混入1.1.1 本质定义与技术定位1.1.2 混入与相关概念的对比1.1.3 适用场景分析1.1.4 设计哲学与…...
Linux里的容器被OOM killed的两种情况
生产上遇到过几次容器实例被OOM的现象,总结一下LInux OOM的两种触发条件。我的虚拟机是ubuntu 24.0.4版本,分配4G内存,在我的虚拟机上复现这两种case。 一 宿主机物理内存不够 当linux上所有应用程序的内存需求加起来超出了物理内存&#x…...
十一、CentOS Stream 9 安装 Docker
一、Docker 环境安装 1、软件源(仓库)信息 使用如下命令可列出当前系统配置的所有软件源(仓库)信息 # 列出所有软件源 dnf repolist 这表明系统有三个仓库 AppStream 、 BaseOS、Extras-Common 被启用 2、配置软件源镜像 使用如下命令可配置 Docker 软件包下载的镜像地址 …...
【数据结构】链表应用-链表重新排序
重新排序 反转链表预期实现思路解题过程code力扣代码核心代码完整代码 总结 删除链表中间节点代码解惑 链表重新排序题目描述解题思路解题过程复杂度代码力扣代码完整代码 反转链表 预期实现 思路 你选用何种方法解题? 我选用了迭代法来反转链表。这是一种经典且高…...
e2studio开发RA2E1(9)----定时器GPT配置输入捕获
e2studio开发RA2E1.9--定时器GPT配置输入捕获 概述视频教学样品申请硬件准备参考程序源码下载选择计时器时钟源UART配置UART属性配置设置e2studio堆栈e2studio的重定向printf设置R_SCI_UART_Open()函数原型回调函数user_uart_callback ()printf输出重定向到串口定时器输入捕获配…...
qt使用MQTT协议连接阿里云demo
qt使用Mqtt协议连接阿里云。 在配置好qt关于MQTT的环境之后,主要就是根据MQTT的连接参数进行连接即可。 环境配置推荐链接QT编译并部署QtMqtt相关环境跑测demo【超详细教程】_mqtt qt开发教程-CSDN博客 连接核心代码,主要就是根据阿里云的MQTT相关参数进行配置实现连…...
Python分享20个Excel自动化脚本
在数据处理和分析的过程中,Excel文件是我们日常工作中常见的格式。通过Python,我们可以实现对Excel文件的各种自动化操作,提高工作效率。 本文将分享20个实用的Excel自动化脚本,以帮助新手小白更轻松地掌握这些技能。 1. Excel单…...
DNN(深度神经网络)近似 Lyapunov 函数
import torch import torch.nn as nn import torch.optim as optim import matplotlib.pyplot as plt # from torchviz import make_dot import torchviz# 1. Lyapunov 函数近似器(MLP 结构) class LyapunovNet(nn.Module):def __init__(self, input_dim…...
什么是数据库代理
数据库代理(DB Proxy)是一种位于应用程序和数据库服务器之间的中间件,充当两者之间的“中间人”。它的核心目标是优化数据库访问、提升性能、增强安全性,并简化数据库架构的复杂度,尤其在高并发、分布式或云环境中应用…...
深入浅出 DeepSeek V2 高效的MoE语言模型
今天,我们来聊聊 DeepSeek V2 高效的 MoE 语言模型,带大家一起深入理解这篇论文的精髓,同时,告诉大家如何将这些概念应用到实际中。 🌟 什么是 MoE?——Mixture of Experts(专家混合模型&#x…...
【创建模式-单例模式(Singleton Pattern)】
赐萧瑀 实现方案饿汉模式懒汉式(非线程安全)懒汉模式(线程安全)双重检查锁定静态内部类 攻击方式序列化攻击反射攻击 枚举(最佳实践)枚举是一种类 唐 李世民 疾风知劲草,板荡识诚臣。 勇夫安识义,智者必怀仁…...
计算机毕业设计Python+Vue.js游戏推荐系统 Steam游戏推荐系统 Django Flask 游 戏可视化 游戏数据分析 游戏大数据 爬虫
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...
6. 【Vue实战--孢子记账--Web 版开发】-- 主币种设置
从这篇文章开始我们将一起实现孢子记账的功能,这篇文章实现主币种设置。这个功能比较简单,因此我们从这个功能开始做。 一、功能 根据项目前期的需求调研,用户需要在设置主币种的时候查看汇率信息(别问为什么有这么个需求&#…...
RabbitMQ深度探索:前置知识
消息中间件: 消息中间件基于队列模式实现异步 / 同步传输数据作用:可以实现支撑高并发、异步解耦、流量削峰、降低耦合 传统的 HTTP 请求存在的缺点: HTTP 请求基于响应的模型,在高并发的情况下,客户端发送大量的请求…...
【文件上传、秒传、分片上传、断点续传、重传】
文章目录 获取文件对象文件上传(秒传、分片上传、断点续传、重传)优化 获取文件对象 input标签的onchange方法接收到的参数就是用户上传的所有文件 <html lang"en"><head><title>文件上传</title><style>#inp…...