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

如何在 Microsoft SQL Server 中增加字段-完整指南

image.png

在使用 Microsoft SQL Server (MSSQL) 进行数据库管理时,添加新字段(列)是一项常见的任务。无论你是需要存储额外的信息,还是调整数据模型以适应新的业务需求,本指南都将帮助你轻松完成这项操作。

目录

    • 1. 使用 T-SQL 添加字段
    • 2. 使用 SQL Server Management Studio (SSMS) 添加字段
    • 3. 添加字段时的注意事项
    • 4. 最佳实践
    • 5. 常见问题解答
    • 6. 高级技巧
      • 6.1 使用计算列
      • 6.2 添加带有约束的列
      • 6.3 使用 SPARSE 列
      • 6.4 添加 FILESTREAM 列
    • 7. 性能考虑
      • 7.1 大表添加列
      • 7.2 索引策略
    • 8. 数据迁移考虑
      • 8.1 添加列与数据填充
      • 8.2 使用临时表进行大规模更改
    • 9. 版本控制和文档
      • 9.1 使用数据库项目
      • 9.2 维护变更日志
    • 10. 安全考虑
      • 10.1 列级加密
      • 10.2 数据屏蔽
    • 11. 实际应用场景
      • 11.1 大规模数据迁移
      • 11.2 动态架构调整
    • 12. 故障排除技巧
      • 12.1 处理锁定问题
      • 12.2 监控长时间运行的 ALTER TABLE 操作
    • 13. 行业最佳实践
    • 14. 新特性和未来展望
    • 结论

1. 使用 T-SQL 添加字段

image.png

使用 Transact-SQL (T-SQL) 是添加新字段最直接的方法之一。以下是基本语法:

ALTER TABLE table_name
ADD column_name data_type;

例如,如果你想在名为 “Employees” 的表中添加一个名为 “Email” 的新字段,可以使用以下命令:

ALTER TABLE Employees
ADD Email VARCHAR(100);

2. 使用 SQL Server Management Studio (SSMS) 添加字段

image.png

对于那些更喜欢图形界面的用户,可以使用 SQL Server Management Studio:

  1. 在对象资源管理器中,展开 “数据库” 节点
  2. 找到并展开你的数据库
  3. 展开 “表” 文件夹
  4. 右键点击要修改的表,选择 “设计”
  5. 在表设计器中,添加新行并填写列名、数据类型等信息
  6. 保存更改

3. 添加字段时的注意事项

  • 数据类型: 选择合适的数据类型对性能和存储至关重要
  • 允许 NULL: 决定新字段是否允许空值
  • 默认值: 考虑是否需要为新字段设置默认值
  • 约束: 确定是否需要为新字段添加任何约束(如CHECK或UNIQUE)
    image.png

4. 最佳实践

  • 在生产环境中进行更改前,先在测试环境中测试
  • 记录所有的架构更改
  • 考虑新字段对现有查询和存储过程的影响
  • 如果表中已有大量数据,添加新字段可能需要较长时间,请在低峰期执行此操作
    image.png

5. 常见问题解答

Q: 添加新字段会锁定表吗?
A: 在大多数情况下,添加新字段是一个元数据操作,不会锁定表。但如果指定了默认值或约束,可能会导致表被锁定。

Q: 我可以一次添加多个字段吗?
A: 是的,你可以在一个 ALTER TABLE 语句中添加多个字段:

ALTER TABLE table_name
ADD column1 data_type,column2 data_type,column3 data_type;

Q: 添加新字段后,需要重建索引吗?
A: 通常不需要,但如果新字段会被频繁查询,考虑为其创建新的索引。

通过遵循这些步骤和最佳实践,你应该能够轻松地在 Microsoft SQL Server 中添加新字段。记住,数据库设计是一个持续的过程,随着业务需求的变化,定期审查和优化你的数据库结构是很重要的。

6. 高级技巧

image.png

6.1 使用计算列

除了添加普通列,你还可以添加计算列。计算列是基于其他列的值或表达式动态计算的列。

ALTER TABLE Products
ADD TotalValue AS (Quantity * Price);

6.2 添加带有约束的列

你可以在添加列的同时添加约束:

ALTER TABLE Employees
ADD Email VARCHAR(100) CONSTRAINT UQ_Email UNIQUE;

6.3 使用 SPARSE 列

对于包含大量 NULL 值的列,可以使用 SPARSE 关键字来优化存储:

ALTER TABLE Customers
ADD OptionalField VARCHAR(100) SPARSE NULL;

6.4 添加 FILESTREAM 列

对于需要存储大型对象(如文档或图像)的情况,可以使用 FILESTREAM:

ALTER TABLE Documents
ADD DocumentContent VARBINARY(MAX) FILESTREAM NULL;

7. 性能考虑

image.png

7.1 大表添加列

对于包含数百万行的大型表,添加新列可能会很耗时。在这种情况下,考虑以下策略:

  • 使用带有默认值的可为空列
  • 在维护窗口期间执行操作
  • 考虑使用分区表来减少影响

7.2 索引策略

添加新列后,重新评估你的索引策略:

  • 如果新列经常在 WHERE 子句中使用,考虑为其创建索引
  • 更新包含所有列的现有索引
  • 使用 Database Engine Tuning Advisor 来分析和优化索引

8. 数据迁移考虑

image.png

8.1 添加列与数据填充

有时,你可能需要添加一个新列并立即用数据填充它:

-- 添加新列
ALTER TABLE Customers ADD LoyaltyScore INT;-- 更新新列的值
UPDATE Customers
SET LoyaltyScore = CASE WHEN TotalPurchases > 10000 THEN 3WHEN TotalPurchases > 5000 THEN 2ELSE 1END;

8.2 使用临时表进行大规模更改

对于复杂的架构更改,使用临时表可能更高效:

  1. 创建新的表结构
  2. 将数据插入新表
  3. 重命名表
  4. 删除旧表

9. 版本控制和文档

image.png

9.1 使用数据库项目

考虑使用 SQL Server Data Tools (SSDT) 和数据库项目来管理架构更改。这提供了版本控制和部署脚本生成的好处。

9.2 维护变更日志

保持一个详细的数据库变更日志:

CREATE TABLE DatabaseChangeLog (ChangeID INT IDENTITY(1,1) PRIMARY KEY,ChangeDescription NVARCHAR(MAX),ScriptApplied NVARCHAR(MAX),AppliedBy NVARCHAR(128),AppliedOn DATETIME DEFAULT GETDATE()
);-- 记录更改
INSERT INTO DatabaseChangeLog (ChangeDescription, ScriptApplied, AppliedBy)
VALUES ('Added Email column to Employees table', 'ALTER TABLE Employees ADD Email VARCHAR(100);',SYSTEM_USER);

10. 安全考虑

image.png

10.1 列级加密

对于敏感数据,考虑使用 Always Encrypted 功能:

ALTER TABLE Employees
ADD SSN NVARCHAR(11) ENCRYPTED WITH (COLUMN_ENCRYPTION_KEY = MyCEK, ENCRYPTION_TYPE = DETERMINISTIC, ALGORITHM = 'AEAD_AES_256_CBC_HMAC_SHA_256');

10.2 数据屏蔽

使用动态数据屏蔽来保护敏感信息:

ALTER TABLE Employees
ADD Email VARCHAR(100) MASKED WITH (FUNCTION = 'email()');

11. 实际应用场景

image.png

11.1 大规模数据迁移

在处理大型遗留系统升级时,你可能需要添加多个列并迁移数据。以下是一个分阶段方法:

  1. 添加新列(允许为空)
  2. 创建一个独立的数据迁移作业
  3. 分批更新数据
  4. 添加约束和索引
-- 步骤 1: 添加新列
ALTER TABLE LegacyCustomers ADDEmail VARCHAR(100) NULL,LoyaltyTier INT NULL,LastPurchaseDate DATE NULL;-- 步骤 2-3: 创建并执行数据迁移作业(示例)
CREATE PROCEDURE MigrateCustomerData
AS
BEGINDECLARE @BatchSize INT = 10000;DECLARE @LastProcessedID INT = 0;WHILE EXISTS (SELECT 1 FROM LegacyCustomers WHERE CustomerID > @LastProcessedID)BEGINUPDATE TOP (@BatchSize) cSET Email = lc.EmailAddress,LoyaltyTier = CASE WHEN lc.TotalPurchases > 10000 THEN 3WHEN lc.TotalPurchases > 5000 THEN 2ELSE 1 END,LastPurchaseDate = lc.MostRecentTransactionFROM LegacyCustomers cINNER JOIN LegacyCustomerDetails lc ON c.CustomerID = lc.CustomerIDWHERE c.CustomerID > @LastProcessedID;SET @LastProcessedID = (SELECT MAX(CustomerID) FROM LegacyCustomers WHERE CustomerID <= @LastProcessedID + @BatchSize);WAITFOR DELAY '00:00:05';  -- 添加小延迟以减少资源压力END
END-- 步骤 4: 添加约束和索引
ALTER TABLE LegacyCustomers ALTER COLUMN Email VARCHAR(100) NOT NULL;
ALTER TABLE LegacyCustomers ADD CONSTRAINT CK_LoyaltyTier CHECK (LoyaltyTier IN (1, 2, 3));
CREATE INDEX IX_LegacyCustomers_Email ON LegacyCustomers(Email);

11.2 动态架构调整

在某些情况下,你可能需要根据业务逻辑动态添加列。这里有一个存储过程示例,可以根据输入参数动态添加列:

CREATE PROCEDURE AddCustomColumn@TableName NVARCHAR(128),@ColumnName NVARCHAR(128),@DataType NVARCHAR(50),@AllowNulls BIT
AS
BEGINDECLARE @SQL NVARCHAR(MAX);DECLARE @NullableString NVARCHAR(10) = CASE WHEN @AllowNulls = 1 THEN 'NULL' ELSE 'NOT NULL' END;SET @SQL = N'ALTER TABLE ' + QUOTENAME(@TableName) + N' ADD ' + QUOTENAME(@ColumnName) + N' ' + @DataType + N' ' + @NullableString;EXEC sp_executesql @SQL;
END-- 使用示例
EXEC AddCustomColumn 'Customers', 'CustomField1', 'NVARCHAR(100)', 1;

12. 故障排除技巧

12.1 处理锁定问题

添加列时可能会遇到锁定问题,特别是在繁忙的系统上。以下查询可以帮助识别阻塞进程:

SELECT wait.session_id,wait.wait_duration_ms,wait.wait_type,wait.blocking_session_id,waits.command,waits.status,waits.lastname,waits.loginname
FROM sys.dm_os_waiting_tasks wait
INNER JOINsys.dm_exec_sessions waits ON wait.session_id = waits.session_id
WHEREwait.blocking_session_id IS NOT NULL
ORDER BYwait.wait_duration_ms DESC;

12.2 监控长时间运行的 ALTER TABLE 操作

对于大型表,ALTER TABLE 操作可能需要很长时间。使用以下查询监控进度:

SELECT r.command,CONVERT(NUMERIC(6,2),r.percent_complete) AS [Percent Complete],CONVERT(VARCHAR(20),DATEADD(ms,r.estimated_completion_time,GetDate()),20) AS [ETA Completion Time],CONVERT(NUMERIC(10,2),r.total_elapsed_time/1000.0/60.0) AS [Elapsed Min],CONVERT(NUMERIC(10,2),r.estimated_completion_time/1000.0/60.0) AS [ETA Min],CONVERT(NUMERIC(10,2),r.estimated_completion_time/1000.0/60.0/60.0) AS [ETA Hours]
FROM sys.dm_exec_requests r
WHEREr.command LIKE 'ALTER TABLE%';

13. 行业最佳实践

image.png

  1. 测试环境验证: 始终在测试环境中先进行更改,然后再应用到生产环境。

  2. 备份策略: 在进行任何架构更改之前,确保有完整的数据库备份。

  3. 变更窗口: 为重大更改安排专门的维护窗口,最好在系统使用低峰期。

  4. 脚本化和版本控制: 将所有数据库更改脚本化并存储在版本控制系统中。

  5. 文档化: 保持详细的变更日志,记录每次更改的原因和影响。

  6. 性能基准测试: 在添加新列之前和之后进行性能基准测试,以评估影响。

  7. 权限管理: 严格控制有权进行架构更改的用户。

  8. 监控和警报: 设置监控和警报系统,以便在长时间运行的操作影响系统性能时通知管理员。

14. 新特性和未来展望

随着 SQL Server 的不断发展,微软持续引入新功能来改善数据库管理体验。密切关注以下方面的发展:

  • 智能查询处理
  • 自动调优
  • 内存优化表的改进
  • 新的数据类型支持

定期查看 Microsoft 的官方文档和博客,了解最新的功能和最佳实践。
image.png

结论

在 Microsoft SQL Server 中添加字段是一项看似简单但实际上可能相当复杂的任务。通过理解基础知识、掌握高级技巧、准备应对常见问题,并遵循行业最佳实践,你可以有效地管理数据库架构的演变。记住,数据库管理是一个持续学习的过程,保持好奇心和实践精神将帮助你在这个领域不断进步。
Microsoft SQL Server 增加字段知识点总结.png

相关文章:

如何在 Microsoft SQL Server 中增加字段-完整指南

在使用 Microsoft SQL Server (MSSQL) 进行数据库管理时,添加新字段(列)是一项常见的任务。无论你是需要存储额外的信息,还是调整数据模型以适应新的业务需求,本指南都将帮助你轻松完成这项操作。 目录 1. 使用 T-SQL 添加字段2. 使用 SQL Server Management Studio (SSMS) 添加…...

快手电商Android一面凉经(2024)

快手电商Android一面凉经(2024) 笔者作为一名双非二本毕业7年老Android, 最近面试了不少公司, 目前已告一段落, 整理一下各家的面试问题, 打算陆续发布出来, 供有缘人参考。今天给大家带来的是《快手电商Android一面凉经(2024)》。 面试职位: Android工程师 技术一面 面试形式…...

随机点名器

练习1 package lx;import java.io.*; import java.util.ArrayList; import java.util.Collections; import java.util.Random;/*需求&#xff1a;需求&#xff1a;有一个文件里面存储了班级同学的信息&#xff0c;每一个信息占一行。格式为&#xff1a;张三-男-23要求通过程序…...

添加动态云层

<template> <div class"topbox"> xx卫星管理 </div> <div class"selectbox"> <div class"title"> 卫星列表 </div> <el-table :data"tableData" style"width: 100%;height:230px;" …...

Spring Boot组成的分布式系统中实现日志跟踪

Spring Boot组成的分布式系统中实现日志跟踪 首发2024-07-25 08:54潘多编程 在分布式系统中&#xff0c;日志跟踪是一项非常重要的功能&#xff0c;它帮助开发者了解请求在整个系统中的流转过程&#xff0c;这对于调试、监控和故障排查至关重要。Spring Boot应用通常作为微服…...

GPT-4o Mini 模型的性能与成本优势全解析

GPT-4o Mini 模型的性能与成本优势全解析 &#x1f4c8; &#x1f31f; GPT-4o Mini 模型的性能与成本优势全解析 &#x1f4c8;摘要引言正文内容GPT-4o Mini 模型简介 &#x1f680;性能测试与对比 &#x1f4ca;应用场景 &#x1f310;自然语言处理对话系统内容生成 ✍️ &am…...

web前端 - HTML 基础知识大揭秘

HTML 大揭秘 什么是 HTML HTML&#xff08;Hyper Text Markup Language&#xff09;&#xff0c;中文译为超文本标记语言。其中&#xff0c;我们需要注意两个关键词。一个是 超文本&#xff0c;一个是 标记。所谓超文本&#xff0c;就是将不同空间的文字信息通过超链接的方式…...

HTML meta

<meta>标签用于提供html文档的元信息&#xff08;metadata&#xff09;。这些信息不会显示在页面上&#xff0c;但会被浏览器或搜索引擎用来识别页面的编码方式、关键字、描述、作者信息、刷新时间等。 基本语法 <meta name"属性名" content"属性值&q…...

【学习笔记】子集DP

背景 有一类问题和子集有关。 给你一个集合 S S S&#xff0c;令 T T T 为 S S S 的超集&#xff0c;也就是 S S S 所有子集的集合&#xff0c;求 T T T 中所有元素的和。 暴力1 先预处理子集的元素和 A i A_i Ai​&#xff0c;再枚举子集。 for(int s0; s<(1<…...

苦学Opencv的第十四天:人脸检测和人脸识别

Python OpenCV入门到精通学习日记&#xff1a;人脸检测和人脸识别 前言 经过了十三天的不懈努力&#xff0c;我们终于也是来到了人脸检测和人脸识别啦&#xff01;相信大家也很激动吧。接下来我们开始吧&#xff01; 人脸识别是基于人的脸部特征信息进行身份识别的一种生物识…...

PyTorch学习(1)

PyTorch学习&#xff08;1&#xff09; CIFAR-10数据集-图像分类 数据集来源是官方提供的&#xff1a; torchvision.datasets.CIFAR10()共有十类物品&#xff0c;需要用CNN实现图像分类问题。 代码如下&#xff1a;(CIFAR_10_Classifier_Self_1.py) import torch import t…...

三思而后行:计算机行业的决策智慧

在计算机行业&#xff0c;"三思而后行"这一原则显得尤为重要。在这个快速发展、技术不断更新换代的领域&#xff0c;每一个决策都可能对项目的成功与否产生深远的影响。以下是一篇关于在计算机行业中三思重要性的文章。 三思而后行&#xff1a;计算机行业的决策智慧 …...

Linux--Socket编程UDP

前文&#xff1a;Socket套接字编程 UDP协议特点 无连接&#xff1a;UDP在发送数据之前不需要建立连接&#xff0c;减少了开销和发送数据之前的时延。尽最大努力交付&#xff1a;UDP不保证可靠交付&#xff0c;主机不需要维持复杂的连接状态表。面向报文&#xff1a;UDP对应用层…...

《javaEE篇》--单例模式详解

目录 单例模式 饿汉模式 懒汉模式 懒汉模式(优化) 指令重排序 总结 单例模式 单例模式属于一种设计模式&#xff0c;设计模式就好比是一种固定代码套路类似于棋谱&#xff0c;是由前人总结并且记录下来我们可以直接使用的代码设计思路。 单例模式就是&#xff0c;在有…...

Java核心 - Lambda表达式详解与应用示例

作者&#xff1a;逍遥Sean 简介&#xff1a;一个主修Java的Web网站\游戏服务器后端开发者 主页&#xff1a;https://blog.csdn.net/Ureliable 觉得博主文章不错的话&#xff0c;可以三连支持一下~ 如有疑问和建议&#xff0c;请私信或评论留言&#xff01; 前言 Lambda表达式是…...

算法通关:006_1二分查找

二分查找 查找一个数组里面是否存在num主要代码运行结果 详细写法自动生成数组和num&#xff0c;利用对数器查看二分代码是否正确 查找一个数组里面是否存在num 主要代码 /*** Author: ggdpzhk* CreateTime: 2024-07-27*/ public class cg {//二分查找public static boolean …...

总结一些vue3小知识3

总结一些vue3小知识1&#xff1a;http://t.csdnimg.cn/C5vER 总结一些vue3小知识2&#xff1a;http://t.csdnimg.cn/sscid 1.限制时间选择器只能选择后面的日期 说明&#xff1a;disabled-date属性是一个用来判断该日期是否被禁用的函数&#xff0c;接受一个 Date 对象作为参…...

JAVAWeb实战(前端篇)

项目实战一 0.项目结构 1.创建vue3项目&#xff0c;并导入所需的依赖 npm install vue-router npm install axios npm install pinia npm install vue 2.定义路由&#xff0c;axios&#xff0c;pinia相关的对象 文件&#xff08;.js&#xff09; 2.1路由(.js) import {cre…...

axios请求大全

本文讲解axios封装方式以及针对各种后台接口的请求方式 axios的介绍和基础配置可以看这个文档: 起步 | Axios中文文档 | Axios中文网 axios的封装 axios封装的重点有三个&#xff0c;一是设置全局config,比如请求的基础路径&#xff0c;超时时间等&#xff0c;第二点是在每次…...

C# 简单的单元测试

文章目录 前言参考文档新建控制台项目新建测试项目添加引用添加测试方法测试结果(有错误)测试结果&#xff0c;通过正规的方法抛出异常 总结 前言 听说复杂的项目最好都要单元测试一下。我这里也试试单元测试这个功能。到时候调试起来也方便。 参考文档 C# 单元测试&#xf…...

Linux中Mysql5.7主从架构(一主多从)配置教程

&#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f427;Linux基础知识(初学)&#xff1a;点击&#xff01; &#x1f427;Linux高级管理防护和群集专栏&#xff1a;点击&#xff01; &#x1f510;Linux中firewalld防火墙&#xff1a;点击&#xff01; ⏰️创作…...

BACnet物联网关BL103:Modbus协议转BACnet/MSTP

随着物联网技术在楼宇自动化与暖通控制系统中的迅猛发展&#xff0c;构建一种既经济高效又高度可靠的协议转换物联网关成为了不可或缺的核心硬件组件。在此背景下&#xff0c;我们钡铼特别推荐一款主流的BAS&#xff08;楼宇自动化系统&#xff09;与BACnet物联网关——BL103&a…...

Go 语言条件变量 Cond

1.Cond 的使用方法 Go 标准库提供 Cond 同步原语的目的是为等待/通知场景下的并发操作提供支持。Cond 通常用于等待某个条件的一组 goroutine,当条件变为 true 时,其中一个或者所有的 goroutine 会被唤醒执行。 Cond 与某个条件相关,这个条件需要一组 goroutine 协作达到。当这…...

PostgreSQL 中如何重置序列值:将自增 ID 设定为特定值开始

我是从excel中将数据导入&#xff0c;然后再通过sql插入数据&#xff0c;就报错。 需要设置自增ID开始值 1、确定序列名称&#xff1a; 首先&#xff0c;需要找到与的增字段相关的序列名称。假设表名是 my_table 和自增字段是 id&#xff0c;可以使用以下查询来获取序列名称…...

Unity 之 【Android Unity 共享纹理】之 Android 共享图片给 Unity 显示

Unity 之 【Android Unity 共享纹理】之 Android 共享图片给 Unity 显示 目录 Unity 之 【Android Unity 共享纹理】之 Android 共享图片给 Unity 显示 一、简单介绍 二、共享纹理 1、共享纹理的原理 2、共享纹理涉及到的关键知识点 3、什么可以实现共享 不能实现共享…...

Go语言的数据结构

数据结构 数组 支持多维数组&#xff0c;属于值类型&#xff0c;支持range遍历 例子&#xff1a;随机生成长度为10整数数组 package main import ("fmt""math/rand" ) // 赋值 随机获取100以内的整数 func RandomArrays() {var array [10]int //声明var…...

python_在sqlite中创建表并写入表头

python_在sqlite中创建表并写入表头 import sqlite3def write_title_to_sqlite(tableName,titleList,dataTypeGroupsList,database_path):conn sqlite3.connect(database_path)# 创建游标cursor conn.cursor()#MEMO 长文本#create_table_bodycreate_table_body "序号 …...

1.c#(winform)编程环境安装

目录 安装vs创建应用帮助查看器安装与使用&#xff08; msdn&#xff09; 安装vs 安装什么版本看个人心情&#xff0c;或者公司开发需求需要 而本栏全程使用vs2022进行开发c#&#xff0c;着重讲解winform桌面应用开发 使用***.net framework***开发 那先去官网安装企业版的vs…...

图中的最短环

2608. 图中的最短环 现有一个含 n 个顶点的 双向 图&#xff0c;每个顶点按从 0 到 n - 1 标记。图中的边由二维整数数组 edges 表示&#xff0c;其中 edges[i] [ui, vi] 表示顶点 ui 和 vi 之间存在一条边。每对顶点最多通过一条边连接&#xff0c;并且不存在与自身相连的顶…...

安装依赖 npm install idealTree:lib: sill idealTree buildDeps 卡着不动

我一直怀疑是网络问题&#xff0c;因为等了很久也能安装成功&#xff0c;就是时间比较长&#xff0c;直到现在完全受不了了&#xff0c;决定好好整治下这个问题&#xff01; 1、执行命令 npm config get userconfig 查看配置文件所在位置&#xff0c;将其删除。 2、执行 n…...

LLMs之Llama 3.1:Llama 3.1的简介、安装和使用方法、案例应用之详细攻略

LLMs之Llama 3.1&#xff1a;Llama 3.1的简介、安装和使用方法、案例应用之详细攻略 导读&#xff1a;2024年7月23日&#xff0c;Meta重磅推出Llama 3.1。本篇文章主要提到了Meta推出的Llama 3.1自然语言生成模型。 背景和痛点 >> 过去开源的大型语言模型在能力和性能上一…...

如何实现一个大模型在回答问题时同时提供相关内容链接

通义生成 为了让大模型在回答问题时能够提供相关内容链接&#xff0c;通常采用的方法是结合检索增强生成&#xff08;Retrieval-Augmented Generation, RAG&#xff09;的技术。这种方法可以让大模型在生成答案的同时&#xff0c;从外部知识源中检索相关信息&#xff0c;并将这…...

<数据集>玉米地杂草识别数据集<目标检测>

数据集格式&#xff1a;VOCYOLO格式 图片数量&#xff1a;9900张 标注数量(xml文件个数)&#xff1a;9900 标注数量(txt文件个数)&#xff1a;9900 标注类别数&#xff1a;2 标注类别名称&#xff1a;[Maize, Weed] 序号类别名称图片数框数1Maize8439125142Weed959231048…...

vue3中动态添加form表单校验

<template><div><div v-for"(formData, index) in forms" :key"index"><u-form :model"formData" :rules"rules" ref"formRefs"><u-form-item label"用户名" prop"username"…...

Java面试八股之什么是声明式事务管理,spring怎么实现声明式事务管理?

什么是声明式事务管理&#xff0c;spring怎么实现声明式事务管理&#xff1f; 声明式事务管理是一种编程范式&#xff0c;它允许开发人员通过声明性的配置或注解&#xff0c;而不是硬编码事务处理逻辑&#xff0c;来指定哪些方法或类应该在其上下文中执行事务。这种方法将事务…...

springboot 缓存预热的几种方案

缓存预热是指在 Spring Boot 项目启动时&#xff0c;预先将数据加载到缓存系统&#xff08;如 Redis&#xff09;中的一种机制。 这里我给大家总结几个缓存预热的方案。 方案1&#xff1a;使用启动监听事件实现缓存预热 可以使用 ApplicationListener 监听 ContextRefreshed…...

谷粒商城实战笔记-62-商品服务-API-品牌管理-OSS整合测试

文章目录 一&#xff0c;Java中上传文件到阿里云OSS1&#xff0c;整合阿里云OSS2&#xff0c;测试上传文件 二&#xff0c;Java中整合阿里云OSS服务指南引言准备工作1. 注册阿里云账号2. 获取Access Key3. 添加依赖 实现OSS客户端1. 初始化OSSClient2. 创建Bucket3. 上传文件4.…...

linux c 递归锁的介绍

递归锁的递归特性确实只是对于持有锁的线程。当一个线程获取了递归锁后&#xff0c;它可以多次重复获取该锁&#xff0c;而不会导致自身阻塞或死锁。这是递归锁的重要特点&#xff0c;它允许同一个线程在已经持有锁的情况下&#xff0c;再次获取相同的锁。 然而&#xff0c;对…...

React好用的组件库有哪些

React好用的组件库有很多&#xff0c;它们各自具有不同的特点和优势&#xff0c;适用于不同的开发场景和需求。以下是一些受欢迎的React组件库及其特点&#xff1a; Material-UI&#xff08;现更名为MUI&#xff09; 特点&#xff1a;这是一个开源的React组件库&#xff0c;实…...

简单快捷!Yarn的安装与使用指南

Yarn 是由 Facebook (现 Meta) 开发的包管理工具。 今天&#xff0c;我将介绍如何使用 Yarn。 目录 Yarn 的官方网站 关于安装 版本确认 开始一个新项目&#xff08;创建 package.json 文件&#xff09; 安装软件包 升级包 运行脚本 执行包的命令 卸载包 总结 Yarn 的…...

【Django】前端技术-网页样式表CSS

文章目录 一、申明规则CSS的导入方式行内样式内部样式外部样式 二、CSS的选择器1. 基本选择器标签选择器&#xff1a; 选择一类标签 标签{}类选择器 class&#xff1a; 选择所有class属性一致的表情&#xff0c;跨标签.类名{}ID选择器&#xff1a;全局唯一 #id名{} 2.层次选择器…...

openssl req 详解

一、openssl req 该命令用于创建和处理PKCS#10格式的证书请求&#xff08;certificate requests CSRs&#xff09;&#xff0c;也可以用来创建自签名证书&#xff08; self-signed certificates&#xff09;来当作根证书&#xff08;root CAs&#xff09;使用 -new 该选项用来…...

mysql各种锁总结

mysql全局锁 读锁&#xff08;共享锁&#xff09; 阻止其他用户更新&#xff0c;但允许他们读取数据。 写锁&#xff08;排他锁&#xff09; 阻止其他用户读取和更新数据。 全局锁场景&#xff1a;进行数据库备份 数据库备份 背景&#xff1a;备份数据肯定要保证数据一致…...

SpringSecurity--DelegatingFilterProxy工作流程

什么是 DelegatingFilterProxy&#xff1f; DelegatingFilterProxy 是 Spring 提供的一个特殊的过滤器&#xff0c;它起到了桥梁的作用&#xff0c;可以让你在 Spring 容器中管理 Servlet 容器中的过滤器。 为什么需要 DelegatingFilterProxy&#xff1f; 通常情况下&#x…...

GitHub每日最火火火项目(7.27)

1. 项目名称&#xff1a;meta - llama / llama3 项目介绍&#xff1a;这是 Meta Llama 3 的官方 GitHub 站点。目前尚不清楚该项目的具体功能和特点&#xff0c;但从名称推测&#xff0c;可能与 Llama 3 模型相关&#xff0c;或许涉及到模型的开发、训练或应用等方面。 项目地…...

git 学习总结

文章目录 一、 git 基础操作1、工作区2、暂存区3、本地仓库4、远程仓库 二、git 的本质三、分支git 命令总结 作者: baron 一、 git 基础操作 如图所示 git 总共有几个区域 工作区, 暂存区, 本地仓库, 远程仓库. 1、工作区 存放项目代码的地方&#xff0c;他有两种状态 Unm…...

《如何找到自己想做的事》

Arouse Enthusiasm, Give Scope to Skill, Explore The Essence *摘其两纸 我喜欢打篮球&#xff0c;并不是我真的喜欢这项运动&#xff0c;而是我喜欢团队竞技。我喜欢看书&#xff0c;并不是我真喜欢阅读&#xff0c;而是我想要了解世界运行逻辑。寻找热爱&#xff0c;探寻本…...

Vue中el的两种写法

大家好我是前端寄术区博主PleaSure乐事。今天了解到了Vue当中有关el的两种写法&#xff0c;记录下来与大家分享&#xff0c;希望对大家有所帮助。 方法一 解释 第一种方法我们直接用new创建并初始化一个新的 Vue 实例&#xff0c;并定义了 Vue 实例的数据对象&#xff0c;在给…...

ELK安装(Elasticsearch+Logstash+Kibana+Filebeat)

一、简介 1.1、软件简介 ELK其实是Elasticsearch&#xff0c;Logstash 和 Kibana三个产品的首字母缩写&#xff0c;这三款都是开源产品。 1.1.1、Elasticsearch简介 Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析…...

VScode使用Github Copilot插件时出现read ECONNREST问题的解决方法

文章目录 read ECONNREST查看是否仍是 Copilot 会员查看控制台输出网络连接问题浏览器设置问题笔者的话 read ECONNREST 最近使用 Copilot 时一直出现 read ECONNREST 问题&#xff0c;这个表示连接被对方重置了&#xff0c;就是说在读取数据时连接被关闭。 我首先怀疑是不是…...