数据库基础知识---以MySQL为例
一、什么是MySQL
- 数据保存在不同的表中,而不是将所有数据放在一个大仓库内
二、特点
- 开源--免费下载
- 跨平台--可以在多个操作系统进行运行
- 性能好--可以出来大量数据
- 简单--安装配置简单
- 支持多种编程语言--可以与多种编程语言进行无缝集成
三、分类
- DDL--数据定义语言:用来定义数据库对象、数据库、表、列
- DML--数据操作语言:用来对数据库中表的记录进行更新
- DQL--数据查询语言:用来查询数据库中表的记录
- DCL--数据控制记录:用来定义数据库的访问权限、安全级别、创建用户
四、常用数据类型
大致分为三类:数值、时间/日期、字符/字符串
1.数值
- int
- double
2.时间/日期
- date-- YYYY-MM-DD
- time--HH:MM:SS
- year--YYYY
3.字符/字符串
- varchar--变长字符串
- char--定长字符串
五、注释
- 单行注释:--空格
- 多行注释:/* */
- #--MySQL特有注解
六、分类(详细)
1.DDL
-
//库 create database 数据库名:创建数据库create database 数据库名 character set 字符集:创建一个数据库,并设置其字符集select database(): 查看正在使用的数据库use 数据库名:切换到 数据库操作show databases:查看所有的数据库show creat database 数据库名:查看指定数据库的定义信息alter database 数据库名 character set 字符集:修改指定数据库的字符集drop database 数据库名:永久删除指定数据库//表CREATE TABLE 表名(字段名称1 字段类型(长度),字段名称2 字段类型 最后一列不加逗号);CREATE TABLE 新表名 like 旧表名:复制表结构show tables; 查看根数据库的所有表名desc 表名 :查看数据表的结构drop table 表名; 删除表drop table if exists 表名; 存在的话就删除,不存在就不执行删除rename table 旧表名 to 新表名:修改表名alter table 表明 character set 字符集名:修改表的字符集alter table 表名 add 字段名称 字段类型:向表中添加列 关键字 ADD(删除列 关键字 DROP)//列 alter table 表名 modify 字段名称 字段类型:修改表中列的 数据类型或长度 ,关键字 MODIFYalter table 表明 change 旧列名 新列名 类型(长度):修改列名称,关键字 CHANGEalter table 表明 drop 列名:删除列,关键字 DROP
2.DML
-
insert into 表名 values (字段1,字段2...):插入全部字段 注意事项 1.值与字段必须对应 ——个数相同,数据类型相同 2.值的数据大小,必须在字段的长度范围内 3.varchar char date 类型,必须使用单引号或双引号 4.要插入空值,可以忽略该字段,或插入 nullupdate 表名 set 列名 = 值 where 条件表达式:带条件修改delete from 表名 where 条件表达式:指定条件删除
3.DQL
-
select * from 表名:查询所有数据select 字段1,字段2 from 表名:查询指定字段数据别名查询 关键字 ASselect distinct * from 表名:去重关键字 distinct排序——Order By select 字段名 from 表名 [where 字段 = 值 ] order by 字段名[ ASC / DESC] ASC 表示升序,默认 ——ascending DESC 表示降序——Descending单例排序——只按照某一个字段排序 select 字段名 from 表名 [where 字段 = 值 ] order by 字段名[ ASC / DESC]组合排序——同时对多个字段排序 select 字段名 from 表名 [where 字段 = 值 ] order by 字段名1[ ASC / DESC] , 字段名2[ ASC / DESC] ;聚合函数 SELECT 聚合函数(字段名) FROM 表名; 聚合函数类型及作用 count(字段) 统计指定列不为NULL的记录行数 sum(字段) 计算指定列的数值和 min(字段) 计算指定列的最大值 max(字段) 计算指定列的最小值 avg(字段) 计算指定列的平均值分组——GROUP BY select 分组字段/聚合函数 from 表名 group by 分组字段 [having 条件]limit关键字 select 字段1,字段2 ... from 表名 limit 起始行数 , 返回行数; limit offset , length; 关键字可以接受一个 或者两个 为0 或者正整数的参数 offset 起始行数, 从0开始记数, 如果省略 则默认为 0. length 返回的行数 分页公式 起始索引 = (当前页 - 1) * 每页条数
七、运算符
1.比较运算符
运算符 | 说明 |
> < = = <> != | 大于、小于、大于(小于)等于、不等于 |
BETWEEN ...AND... | 显示在某一区间的值 例如: 2000-10000之间: Between 2000 and 1000 |
IN(集合) | 集合表示多个值,使用逗号分隔,例如: name in (悟空,八戒)in中的每个数据都会作为一次条件,只要满足条件就会显示 |
LIKE '%张%' | 模糊查询 |
IS NULL | 查询某一列为NULL的值, 注: 不能写 = NULL |
2.逻辑运算符
运算符 | 说明 |
And && | 多个条件同时成立 |
Or || | 多个条件任一成立 |
Not | 不成立,取反。 |
3.通配符--模糊查询
通配符 | 说明 |
% | 匹配任意多个字符串 |
_ | 匹配一个字符 |
八、约束
1.作用
- 对表中的数据进行进一步限制,从而保证数据的正确性,有效性,完整性。违反约束的条件,将无法插入到表中
2.常见约束
- 主键 —— primary key
-
语法格式:字段名 字段类型 primary key创建主键:1.CREATE TABLE 表名(字段名1 数据类型 ,字段名2 数据类型 PRIMARY KEY ,字段名3 数据类型);2.CREATE TABLE 表名(字段名1 数据类型 ,字段名2 数据类型 ,字段名2 数据类型 ,PRIMARY KEY(字段名2));3.alter table 表名 add primary key(字段名)删除主键:alter table 表名 drop primary key主键自增:字段名 数据类型 primary key auto_increment (字段类型必须是 整数类型)
- 唯一 —— unique
-
特点:表中的某一列值不能有重复值字段名 字段类型 unique
- 非空 —— not null
-
特点: 某一列数据不可为空字段名 字段类型 not null
- 外键 —— foreign key
-
外键指的是在从表中与主表的主键对应的那个字段注意事项 1.外键指向的表的字段,要求是primary key 或者是 unique 2.表的类型的innodb ,这样的表才支持外键 3.外键字段的类型 要和 主键字段的类型一致(长度可以不同) 4.外键字段的值,必须在主键字段中出现过,或者为null 5.一旦建立主外键关系,数据不能随意删除 6.添加数据时,先添加主表中的数据 7.删除数据时,先删除从表中的数据创建外键 [constraint] [外键约束名称] foreign key(外键字段名) references 主表名(主键字段名)已有表添加外键 ALTER TABLE 从表 ADD [CONSTRAINT] [外键约束名称] FOREIGN KEY (外键字段名) REFERENCES主表(主 键字段名);删除外键 alter table 从表 drop foreign key 外键约束名称
- 默认值——default
-
用来指定某列的默认值字段名 字段类型 default 默认值
九、事务
1.什么是
- 事务是一个整体,由一条或者多条SQL 语句组成,这些SQL语句要么都执行成功,要么都执行失败, 只要有一条SQL出现异常,整个操作就会回滚,整个业务执行失败
2.回滚
- 即在事务运行的过程中发生了某种故障,事务不能继续执行,系统将事务中对数据库的所有已完成 的操作全部撤销,滚回到事务开始时的状态。(在提交之前执行)
3.基本操作
-
start transaction / begin ——开始一个事务rollback ——回滚全部事务commit——提交事务,所有的操作生效,无法在回滚
4.四大特性
- 原子性: 事务是一个不可拆分的整体,要么全部成功要么全部失败
- 一致性: 数据的状态,在执行前后保持一致
- 隔离性:事务与事务之间互不影响,执行保持隔离状态
- 持久性:执行成功,对数据库的修改是永久性的
5.产生问题及隔离级别
(1) 产生问题
- 脏读: 一个事务读取到另一个事务尚未提交的数据
- 幻读: 一个事务内,多次查询同一数据时,数据量不一致
- 不可重复读:同一个事务多次读取同一条数据时,数据不一致
(2)隔离级别
6. 表
- 一对一
- 一对多
- 例如:班级和学生,客户与订单
- 建表原则:在从表(多方)创建一个字段,字段作为外键指向主表的(一方)的主键
- 主:少
- 从:多
- 多对多
- 例如:老师和学生,客户与销售
- 建表原则:创建一个中间表,中间表至少两个字段,分别作为外键指向各自一方的主键
- 注意:多对多关系中,多个表之间,中间表就成了从表
7. 多表查询分类
(1)内连接:交集
- 隐式链接
- SELECT 字段名 FROM 左表, 右表 WHERE 连接条件;
- 显式链接
- select 字段名 from 左表[ INNER ] JOIN 右表 ON 连接条件 where 条件
(2)外连接
- 左外连接
- 以左表为基准, 匹配右边表中的数据,如果匹配的上,就展示匹配到的数据,如果匹配不到, 左表中的数据正常展示, 右边的展示为null.
- SELECT 字段名 FROM 左表 LEFT [OUTER] JOIN 右表 ON 条件
- 右外连接
- 以右表为基准, 匹配左边表中的数据,如果匹配的上,就展示匹配到的数据,如果匹配不到, 右表中的数据正常展示, 左边的展示为null.
- SELECT 字段名 FROM 右表 RIGHT [OUTER] JOIN 左表 ON 条件
(3)子查询
- 什么是
- 一条select 查询语句的结果, 作为另一条 select 语句的一部分
- 特点
- 子查询必须放在小括号中
- 子查询一般作为父查询的查询条件使用
十、数据库设计
1.三范式
- 第一范式
-
原子性,列不能在分最基本范式最小数据单元
- 第二范式
-
在第一范式基础上进行跟进,目的是为了让表中的每一列与主键相关
- 第三范式
-
消除传递依赖
十一、MySQL索引
1.分类
- 主键索引
- 唯一索引
- 普通索引
2.优缺点
- 优点
- 提高查询速度
- 减少查询中分组与排序的时间
- 缺点
- 咋用一定得储存空间
- 减少创建和维护索引的时间
- 不恰当查询语句会导致索引失效
十二、MySQL视图
1.什么是
- 一种虚拟表
2.作用
- 控制权限
- 比如说,有几个列可以运行用户查询,其他列不允许运行;我们可以开通视图,只查询特定的列,这样起到权限控制作用
- 简化多表查询
- 比如说,我们要进行一次复杂的查询,我们可以构建一张视图,用户只要查询视图就可以获取相关信息
3.视图和表的区别
- 删除视图,表不受影响,删除表,视图也将不存在
十三、MySQL优化
- select语句中避免使用*
-
-- 不推荐 SELECT * FROM employees; -- 推荐 SELECT id, name, position FROM employees;
- 只需要一行数据的时候使用limit 1
-
-- 不推荐(可能返回多行) SELECT name FROM employees WHERE position = 'Manager';-- 推荐(确保只返回一行) SELECT name FROM employees WHERE position = 'Manager' LIMIT 1;
- 将where中用的比较频繁的字段建立索引
-
-- 假设`position`字段在`WHERE`子句中经常使用 CREATE INDEX idx_position ON employees(position);
- 减少使用join查询次数
-
-- 不推荐(多个JOIN) SELECT e.name, d.department_name FROM employees e JOIN departments d ON e.department_id = d.id JOIN projects p ON e.project_id = p.id; -- 推荐(减少JOIN,分步查询) SELECT name FROM employees WHERE department_id = 1; SELECT department_name FROM departments WHERE id = 1;
- 减少子查询的次数
-
-- 不推荐(使用子查询) SELECT name FROM employees WHERE department_id = (SELECT id FROM departments WHERE department_name = 'Sales');-- 推荐(用JOIN替代子查询) SELECT e.name FROM employees e JOIN departments d ON e.department_id = d.id WHERE d.department_name = 'Sales';
- 对大数据量的查询,使用分页查询、分区表、分表
-
-- 不推荐(一次性查询所有数据) SELECT * FROM employees; -- 推荐(分页查询) SELECT * FROM employees LIMIT 10 OFFSET 0; -- 查询第一页,每页10条
- 使用动态SQL,避免生成多余复杂的语句,防止SQL注入
-
-- 不推荐(拼接SQL,易注入) SELECT * FROM employees WHERE name = 'O'Reilly'; -- 危险! -- 推荐(使用参数化查询) PREPARE stmt FROM 'SELECT * FROM employees WHERE name = ?'; SET @name = 'O\'Reilly'; EXECUTE stmt USING @name;
- 优化数据类型:根据实际情况选择合适的数据类型,例如,对于整数类型,可以根据范围选择适当的类型,避免使用不必要的大整数类型。
-
-- 不推荐(使用过大类型) CREATE TABLE employees (id BIGINT, age INT);-- 推荐(选择合适类型) CREATE TABLE employees (id INT, age TINYINT);
- 垂直分区:如果一个表过于庞大,可以将其拆分成多个表,每个表只包含相关的列,这样可以减少表的大小和查询的复杂度。
-
-- 假设按年份分区 CREATE TABLE employees_2020 (id INT, name VARCHAR(50), ...); CREATE TABLE employees_2021 (id INT, name VARCHAR(50), ...); -- 查询时根据年份选择相应的表 SELECT * FROM employees_2021 WHERE name = 'John';
- 水平分区:将数据分布到多个表中,根据某个字段的值进行分区,例如按照时间范围或地区进行分区。这样可以提高查询的局部性和并行处理能力。
-
-- 假设按年份分区 CREATE TABLE employees_2020 (id INT, name VARCHAR(50), ...); CREATE TABLE employees_2021 (id INT, name VARCHAR(50), ...); -- 查询时根据年份选择相应的表 SELECT * FROM employees_2021 WHERE name = 'John';
- 定期优化表:定期执行 OPTIMIZE TABLE 命令来优化表的结构,整理数据和索引,提高查询性能。
-
-- 定期执行 OPTIMIZE TABLE employees;
- 缓存查询结果:对于频繁查询的结果,可以使用缓存来提高性能,例如在应用程序中使用缓存框架或在 MySQL 中使用查询缓存。
-
-- 在应用程序层面使用缓存(伪代码) if (cache.get('employee_list') == null) {result = db.query('SELECT * FROM employees'); cache.set('employee_list', result, 60); // 缓存60秒 } else { result = cache.get('employee_list'); }
相关文章:
数据库基础知识---以MySQL为例
一、什么是MySQL 数据保存在不同的表中,而不是将所有数据放在一个大仓库内 二、特点 开源--免费下载跨平台--可以在多个操作系统进行运行性能好--可以出来大量数据简单--安装配置简单支持多种编程语言--可以与多种编程语言进行无缝集成 三、分类 DDL--数据定义…...
013-spring的注解整合第三方框架
给spring的ioc容器中添加对象 常用这3个方法...
使用ForceBindIP绑定应用到指定IP
前言 使用ForceBindIP工具,用户可以轻松地将特定应用程序绑定到指定的IP地址,从而确保应用程序的网络连接通过指定的网络适配器进行。通过在命令提示符下运行ForceBindIP并指定IP地址和应用程序的完整路径,用户能够控制应用程序的网络流量&a…...
python-LeetCode-两数之和
1. 两数之和 - 力扣(LeetCode) class Solution:def twoSum(self, nums: List[int], target: int) -> List[int]:# 创建一个哈希表用于存储值和索引num_to_index {}for i, num in enumerate(nums):# 计算目标值需要的补数complement target - num# 如…...
项目开发实践——基于SpringBoot+Vue3实现的在线考试系统(四)
文章目录 一、管理员角色功能实现1、添加教师功能实现1.1 页面设计1.2 前端功能实现1.3 后端功能实现1.4 效果展示2、教师管理功能实现2.1 页面设计2.2 前端功能实现2.3 后端功能实现2.3.1 后端查询接口实现2.3.2 后端编辑接口实现2.3.3 后端删除接口实现2.4 效果展示二、代码下…...
大语言模型的token和向量
现在大语言模型火了,像 ChatGPT 什么的,能回答问题、写文章,。但它们为啥这么聪明呢?这就和向量、Token 有关系。那怎么通过向量、Token来理解我们的问题呢。看完这篇文章就知道了 token Token 就像是语言里的小积木,…...
Hyperledger Fabric有那些核心技术,和其他区块链对比Hyperledger Fabric有那些优势
Hyperledger Fabric是一个模块化、权限化的企业级区块链平台,与比特币、以太坊等公有链相比,Fabric主要为私有链或联盟链设计,适用于企业应用。它包含多项核心技术,使其在企业级区块链应用中具有独特优势。以下是Fabric的核心技术…...
ThinkPHP 8高效构建Web应用-第一个简单的MVC应用示例
【图书介绍】《ThinkPHP 8高效构建Web应用》-CSDN博客 《2025新书 ThinkPHP 8高效构建Web应用 编程与应用开发丛书 夏磊 清华大学出版社教材书籍 9787302678236 ThinkPHP 8高效构建Web应用》【摘要 书评 试读】- 京东图书 使用VS Code开发ThinkPHP项目-CSDN博客 我们先实现一…...
【Goland】怎么执行 go mod download
1、终端的执行 go mod tidy 2、终端执行不行的话,就可以通过右击go.mod文件来执行; 3、也可以按住Ctrl点击这个包安装;...
SpringBoot入门案例
目录 一、SpringBoot入门 1. Spring Boot 简介(脚手架) 2. 微服务 微服务优点: 微服务缺点: 3. 环境准备 3.1 spring boot项目的创建 3.2 导入spring boot相关的依赖 3.5 编写主程序 3.4 编写相关的controller、service…...
自定义 Celery的logging模块
为什么需要自定义 Celery 日志 默认的 Celery 日志配置虽然满足基本需求,但在以下情况下可能需要进行自定义: 支持日志滚动:原生celery不支持日志滚动。更详细的日志信息:需要包含更多上下文信息,以便更好地理解任务…...
docker-开源nocodb,使用已有数据库
使用已有数据库 创建本地数据库 数据库:nocodb 用户:nocodb 密码:xxxxxx修改docker-compose.yml 默认网关的 IP 地址是 172.17.0.1(适用于 bridge 网络模式)version: "2.1" services:nocodb:environment:…...
【UE5】UnrealEngine源码构建1:tag为5.3.2源码clone
fatal: fetch-pack: invalid index-pack output clone unreal 速度很快,但是很容易失败Cloning into UnrealEngine... remote: Enumerating objects: 6511087, done. remote: Counting objects: 100% (196/196), done. remote: Compressing objects: 100% (50/50), done. erro…...
RoboMIND:多体现基准 机器人操纵的智能规范数据
我们介绍了 RoboMIND,这是机器人操纵的多体现智能规范数据的基准,包括 4 个实施例、279 个不同任务和 61 个不同对象类别的 55k 真实世界演示轨迹。 工业机器人企业 埃斯顿自动化 | 埃夫特机器人 | 节卡机器人 | 珞石机器人 | 法奥机器人 | 非夕科技 | C…...
FPGA自学之路:到底有多崎岖?
FPGA,即现场可编程门阵列,被誉为硬件世界的“瑞士军刀”,其灵活性和可编程性让无数开发者为之倾倒。但谈及FPGA的学习难度,不少人望而却步。那么,FPGA自学之路到底有多崎岖呢? 几座大山那么高?…...
讲一个自己写的 excel 转 html 的 java 工具
由来 这是一个从开发需求中诞生的工具,在工作中因为有一个 excel 转 html 的任务,又没找到一个专门做这方面的工具(其他工具几乎都是简单的转换,无法还原 excel 样式,而且转换的宽高有点儿差距)࿰…...
打破视障壁垒,百度文心快码无障碍版本助力视障IT从业者就业无“碍”
有AI无碍 钟科:被黑暗卡住的开发梦 提起视障群体的就业,绝大部分人可能只能想到盲人按摩。但你知道吗?视障人士也能写代码。 钟科,一个曾经“被黑暗困住”的人,他的世界,因为一场突如其来的疾病,…...
爆改RagFlow
爆改RagFlow 一、Rag理论概述二、Ragflow解析参数说明三、♥ RagFlow源码解析核心代码流程梳理1、OCR识别2、版面分析3、parser功能3.1 PdfParser3.1.1 首先,初始化3.1.2 **pdf转图片** [来自工业界的知识库 RAG 服务(二),RagFlow 源码全流程深度解析](h…...
Unity 使用UGUI制作卷轴开启关闭效果
视频效果 代码 using UnityEngine.UI; using System.Collections; using System.Collections.Generic; using UnityEngine; using DG.Tweening; using DG.Tweening.Core; using DG.Tweening.Plugins.Options;public class JuanZhou : MonoBehaviour {[SerializeField]private …...
android知识巩固(二.非线性数据结构)
非线性结构:是从逻辑结构上划分,其元素存在一对多或者多对多的相互关系 1.前言 在前一章中,我们了解了数据结构的基本思想,学习了部分基本的线性数据结构,了解了计算机是如何表示和存储数据的,良好的数据结构思想有助于我们写出性能优良的应用 2.目录 目录.png 3.非线性数据结构…...
Kafka中的Topic和Partition有什么关系?
大家好,我是锋哥。今天分享关于【Kafka中的Topic和Partition有什么关系?】面试题。希望对大家有帮助; Kafka中的Topic和Partition有什么关系? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 在 Apache Kafka 中&#…...
CMS漏洞靶场攻略
DeDeCMS 环境搭建 傻瓜式安装 漏洞一:通过文件管理器上传WebShel 步骤⼀:访问目标靶场其思路为 dedecms 后台可以直接上传任意文件,可以通过⽂件管理器上传php文件获取webshell 登陆网站后台 步骤二:登陆到后台点击 【核心】 --》 【文件式…...
PHP高性能webman管理系统EasyAdmin8
介绍 EasyAdmin8-webman 在 EasyAdmin 的基础上使用 webman 最新版重构,PHP 最低版本要求不低于 8.0。基于webman和layui v2.9.x的快速开发的后台管理系统。 项目地址:http://easyadmin8.top 演示地址:http://webman.easyadmin8.top/admin …...
【达梦数据库】64 位操作系统注册 32 位 ODBC 方法
目录 背景思路部署安装64位软件安装包注册32位驱动成功案例其他案例 配置数据源 背景 在使用达梦数据库的过程中,应用需要32位驱动与数据库进行适配 思路 部署32位软件,经过测试,dmmonitor在本地环境及客户环境中前台启动失败报错ÿ…...
渗透学习笔记(十一)Burp Suite 总结
声明! 学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关&#…...
数据结构与算法学习笔记----约数
数据结构与算法学习笔记----约数 author: 明月清了个风 first publish time: 2024.12.30 ps⭐️主要是求约数,约数的个数,约数的和,涉及到算术基本定理的相关内容,第三题的讲解合并在第二题的思路里一起了。 Acwing 869. 试除法…...
PyAudio库基本知识详解——为自制PCM音频播放器做准备
前言 结合前段时间我们做的音频编解码器,这样我们就可以将获取到的ADPCM数据,转换成PCM数据,然后播放出来,得到一个完整的音频数据,因此,接下来几篇文章中,我们想做一个播放PCM格式的音频播放器…...
微信小程序 覆盖组件cover-view
wxml 覆盖组件 <video src"../image/1.mp4" controls"{{false}}" event-model"bubble"> <cover-view class"controls"> <cover-view class"play" bind:tap"play"> <cover-image class"…...
实战案例——ZooKeeper集群部署(新手教程超详细)
案例目标 了解ZooKeeper分布式应用程序协调服务使用3台机器搭建ZooKeeper集群使用ZooKeeper集群 案例分析 规划节点 ZooKeeper集群节点规划 Ip 主机名 节点 192.168.110.10 zookeeper1 集群节点 192.168.110.20 zookeeper2 集群节点 192.168.110.30 zookeeper3 …...
LeetCode 326 3的幂
如何判断一个整数是否为 3 的幂次方 在编程中,我们经常会遇到各种有趣的数学问题,今天就来探讨一个看似简单却又很有技巧性的问题:如何判断一个给定的整数是否是 3 的幂次方。 一、问题描述 给定一个整数 n,我们需要编写一个函数…...
智能工厂的设计软件 应用场景的一个例子:为AI聊天工具添加一个知识系统 之5
本文要点 前端 问题描述语言 本文继续完善 “描述” ---现在我们应该可以将它称为 “问题problem描述语言 ”。 它 通过对话框的question 引发 表征的issue 的“涌现” 最终 厘清应用程序的“problem”。即它合并了 ISO七层模型中的上面三层,通过将三层 分别形成…...
flink-1.16 table sql 消费 kafka 数据,指定时间戳位置消费数据报错:Invalid negative offset 问题解决
请移步至最后的:2024-12-27日调整实现方式,26日实现的有bug,但是可以作为参考。 2024-12-27日调整实现方式 1.上边的方案,可以实现topic中每个分区都正常有数据的情况,但是如果部分分区没有数据,或者指定的…...
【服务器】上传文件到服务器并训练深度学习模型下载服务器文件到本地
前言:本文教程为,上传文件到服务器并训练深度学习模型,与下载服务器文件到本地。演示指令输入,完整的上传文件到服务器,并训练模型过程;并演示完整的下载服务器文件到本地的过程。 本文使用的服务器为云服…...
MyBatis如何处理延迟加载?
大家好,我是锋哥。今天分享关于【MyBatis如何处理延迟加载?】面试题。希望对大家有帮助; MyBatis如何处理延迟加载? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 在 MyBatis 中,延迟加载(Laz…...
制造BOM的应用思考
一、制造BOM的作用 制造BOM(Manufacturing BOM,MBOM)在制造过程中的应用非常广泛,具体包括以下几个方面: 1. 生产计划和调度: 制造BOM提供了生产过程中所需的所有输入及输出间的关系,包括材料、部品的数量、结构以及制程等信息。这些信息是生产拉动物料需求计划以及成本…...
基于earthSDK三维地图组件开发
上效果 功能点 测量分析相机位置切换geojson数据加载地图打点,显示信息点击回传数据二三位切换 这里二三维切换通上篇openlayers分享,技术交流V:bloxed <template><div class"h100 w100"><div style"width:100%; heig…...
Mono里运行C#脚本5—mono_file_map_open
前面介绍了mono_jit_init初始化,这个函数非常长,要理解起来还是比较困难。因此改变另外一种方式,先从底层的函数开始,再慢慢来探索mono的底层实现,以及它的实现原理,运行的细节。 Mono要运行exe文件,这里是运行test-embed.exe文件,那么就得认识这个文件,解释这个文件的…...
Node.js使用教程
Node.js使用教程 Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它让JavaScript运行在服务器端。以下是一个简单的Node.js使用教程: 一、 Node.js开发环境和编译 1.1 安装Node.js 访问Node.js官网下载并安装适合您操作系统的Node.js版本。 1…...
UniApp 组件的深度运用
一、引言 在当今的移动应用开发领域,跨平台开发已成为主流趋势,而 UniApp 作为其中的佼佼者,备受开发者青睐。UniApp 的强大之处很大程度上源于其丰富且功能多样的组件体系,这些组件宛如精巧的积木,能够帮助开发者快速…...
期末算法分析程序填空题
目录 5-1 最小生成树(普里姆算法) 5-2 快速排序(分治法) 输入样例: 输出样例: 5-3 归并排序(递归法) 输入样例: 输出样例: 5-4 求解编辑距离问题(动态规划法)…...
【机器学习】 卷积神经网络 (CNN)
文章目录 1. 为什么需要 CNN2. CNN 的架构3. 卷积层4. 池化层5. CNN 的应用 1. 为什么需要 CNN 前提:利用前置知识,去掉全连接神经网络中的部分参数,提升学习效率。本质:在 DNN 之前加上 CNN,先去除不必要的参数&…...
LeetCode热题100-字母异位词分组【JavaScript讲解】
题目: 根据题目想思路: 模式识别: 一旦需要根据特征进行归类的,就应该利用散列表。【散列表又叫哈希表】 我们遍历数组中的每一项,将每一项字符串拆分成一个一个的字符,并返回成数组的形式,并且进行排序后…...
面试241228
面试可参考 1、cas的概念 2、AQS的概念 3、redis的数据结构 使用场景 不熟 4、redis list 扩容流程 5、dubbo 怎么进行服务注册和调用,6、dubbo 预热 7如何解决cos上传的安全问题kafka的高并发高吞吐的原因ES倒排索引的原理 spring的 bean的 二级缓存和三级缓存 spr…...
AI界的拼多多:DeepSeek
AI界的拼多多:DeepSeek DeepSeek是一家位于中国杭州的人工智能基础技术研究公司,由杭州幻方量化投资管理合伙企业投资成立于2023年5月,专注于研究人工智能基础技术,其官网为deepseek.com.以下是关于DeepSeek的一些具体介绍及举例: 模型发布 DeepSeek Coder:2023年11月…...
备战春招 | 数字IC FPGA笔试题
在数字电路设计的领域,无论是数字IC(集成电路)还是FPGA(现场可编程门阵列)的设计,都需要对一系列核心概念有深刻的理解和掌握。随着科技的快速发展,这些领域的面试题目也在不断更新,…...
微服务-Sentinel新手入门指南
微服务为什么要使用流控降级组件 为了提高系统运行期间的稳定性和可用性 在微服务环境下,服务之间存在复杂的调用关系,单个服务的故障或过载可能会迅速影响到整个系统,导致服务雪崩效应。流控组件可以限制进入系统的流量,防止系…...
git clone 超时
git clone 超时 参考 https://blog.csdn.net/qq_45906972/article/details/142214187?utm_mediumdistribute.pc_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-0-142214187-blog-137158358.235v43pc_blog_bottom_relevance_base8&spm1001.2101.3001.…...
java的bio、nio、aio 以及操作系统的select、poll、epoll
在 Java 和其他编程语言中,I/O 模型的选择对网络应用的性能和可扩展性有着重要影响。以下是 BIO(Blocking I/O)、NIO(Non-blocking I/O)、AIO(Asynchronous I/O),以及操作系统级别的…...
Redis——数据过期策略
文章目录 1. 引入2. 数据过期策略2.1 策略一:惰性删除2.1.1 原理2.1.2 优点2.1.3 缺点 2.2 策略二:定期删除2.2.1 原理2.2.2 模式2.2.3 优点2.2.4 缺点 2.3 两种策略的比较 3. 总结 1. 引入 Redis 是一个 高性能 的非关系型数据库,由于 Redi…...
kubernetes Gateway API-1-部署和基础配置
文章目录 1 部署2 最简单的 Gateway3 基于主机名和请求头4 重定向 Redirects4.1 HTTP-to-HTTPS 重定向4.2 路径重定向4.2.1 ReplaceFullPath 替换完整路径4.2.2 ReplacePrefixMatch 替换路径前缀5 重写 Rewrites5.1 重写 主机名5.2 重写 路径5.2.1 重新完整路径5.2.1 重新部分路…...