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

向量数据库Milvus的部署与使用

Milvus介绍

Milvus是一个开源、高性能、高扩展性的向量数据库,Milvus可以用来存储文本、图像、音频等非结构化数据,本质上是用Embeddings将非结构化数据转换成能够捕捉其基本特征的数字向量,然后将这些向量存储在向量数据库中,从而实现搜索和分析。

Milvus适合各种规模的人工智能应用,在知识库、语义搜索、检索增强生成(RAG)等人工智能应用中发挥着举足轻重的作用。

Milvus 提供三种部署模式,分别是Milvus Lite、Milvus Standalone和Milvus Distributed:

  • Milvus Lite:Milvus的轻量级版本,可以在python中安装pymilvus库来进行使用,适合进行快速原型开发,或在资源有限的设备上运行;
  • Milvus Standalone :单机服务器部署版本,其运行所需组件可以通过docker-compose快速便捷部署;
  • Milvus Distributed :分布式部署版本,部署在 Kubernetes 集群上,采用云原生架构,专为十亿规模甚至更大的场景而设计。

本篇文章将在Linux环境中使用Docker Compose部署Milvus Standalone版本,然后通过python远程连接Milvus服务器并进行一些Milvus数据库的基本操作。另外也将介绍Milvus可视化工具Attu的安装使用。

环境准备

Milvus Standalone可以在Linux、MacOS等操作系统上安装,下表是其对操作系统及软件的要求:

操作系统软件
macOS 10.14 或更高版本Docker 桌面
Linux 平台Docker 19.03 或更高版本Docker Compose 1.25.1 或更高版本
已启用 WSL 2 的 WindowsDocker 桌面

Docker的安装

Milvus Standalone需要使用Docker Compose来配置安装,因此先检查有没有安装Docker。

#查看docker版本
docker --version

如果正常显示版本,说明docker已安装,否则需要先安装docker,这个比较简单,可以自行安装。


在这里插入图片描述


Docker-Compose的安装

检查是否已安装Docker-Compose。

#查看docker-compose版本
docker-compose --version

在这里插入图片描述


如果如上图所示没有安装Docker-Compose,可以使用下面的命令来安装。

#指定存放路径
cd /usr/bin
#latest可以替换为具体版本号 
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/bin/docker-compose#如需卸载,可以执行
#rm -f /usr/bin/docker-compose

赋予执行权限。

chmod +x /usr/bin/docker-compose

安装完成后再次查看。

docker-compose --version

在这里插入图片描述


安装Milvus

有了Docker和Docker Compose,就可以部署Milvus Standalone了。

1.首先获取Milvus的Docker Compose配置文件 milvus-standalone-docker-compose.yml

#创建文件夹,用于存放配置文件
mkdir -p /export/server/milvus
#获取配置文件,v2.5.10版本号可以按需更改
wget https://github.com/milvus-io/milvus/releases/download/v2.5.10/milvus-standalone-docker-compose.yml -O docker-compose.yml

注:配置文件里面列出了部署Milvus Standalone所需的docker镜像、端口等配置信息,如因网络问题不能正常通过wget获取milvus-standalone-docker-compose.yml配置文件,也可以手动创建一个名为docker-compose.yml的配置文件,里面要放入的配置信息如下:

version: '3.5'services:etcd:container_name: milvus-etcdimage: quay.io/coreos/etcd:v3.5.18environment:- ETCD_AUTO_COMPACTION_MODE=revision- ETCD_AUTO_COMPACTION_RETENTION=1000- ETCD_QUOTA_BACKEND_BYTES=4294967296- ETCD_SNAPSHOT_COUNT=50000volumes:- ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/etcd:/etcdcommand: etcd -advertise-client-urls=http://etcd:2379 -listen-client-urls http://0.0.0.0:2379 --data-dir /etcdhealthcheck:test: ["CMD", "etcdctl", "endpoint", "health"]interval: 30stimeout: 20sretries: 3minio:container_name: milvus-minioimage: minio/minio:RELEASE.2023-03-20T20-16-18Zenvironment:MINIO_ACCESS_KEY: minioadminMINIO_SECRET_KEY: minioadminports:- "9001:9001"- "9000:9000"volumes:- ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/minio:/minio_datacommand: minio server /minio_data --console-address ":9001"healthcheck:test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]interval: 30stimeout: 20sretries: 3standalone:container_name: milvus-standaloneimage: milvusdb/milvus:v2.5.10command: ["milvus", "run", "standalone"]security_opt:- seccomp:unconfinedenvironment:ETCD_ENDPOINTS: etcd:2379MINIO_ADDRESS: minio:9000volumes:- ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/milvus:/var/lib/milvushealthcheck:test: ["CMD", "curl", "-f", "http://localhost:9091/healthz"]interval: 30sstart_period: 90stimeout: 20sretries: 3ports:- "19530:19530"- "9091:9091"depends_on:- "etcd"- "minio"networks:default:name: milvus

2.拉取配置文件后进行启动

#启动,启动前可以通过netstat -tanlp查看端口监听情况
sudo docker compose up -d

正常启动如下图所示。


在这里插入图片描述


注:如因配置源或网络问题导致下载缓慢或不能下载所需镜像文件,也可以单独使用docker pull来下载好所需镜像文件后再运行sudo docker compose up -d。

比如对于上面的配置文件里面列出所需的三个镜像文件:

  • image: quay.io/coreos/etcd:v3.5.18
  • image: minio/minio:RELEASE.2023-03-20T20-16-18Z
  • image: milvusdb/milvus:v2.5.10
#下载etcd镜像,其他两个一样操作。
docker pull quay.io/coreos/etcd:v3.5.18
#查看镜像
#docker images

另外,如果想更换配置源,可以在daemon.json文件中添加配置源。

#编辑daemon.json,打开后自行添加配置源
vim /etc/docker/daemon.json
#然后重启docker服务使更改生效
sudo systemctl daemon-reload
sudo systemctl restart docker

3.检查容器是否正常启动运行

#检查容器启动运行情况,此时再通过netstat -tanlp命令可以看到端口19530等已处于监听中
docker-compose ps#查看Milvus日志
#docker-compose logs -f standalone

在这里插入图片描述


4.访问Milvus的WebUI页面

Milvus WebUI 是Milvus的图形化管理工具,从v2.5.0版本开始才有。它能列出详细的 Milvus 配置,可用来观察Milvus组件和依赖关系的统计与指标、检查数据库和Collections的详细信息。

#访问Milvus WebUI
http://你的IP地址:9091/webui/

在这里插入图片描述


5.停止Milvus服务与删除数据

#停止Milvus
cd /export/server/milvus
sudo docker compose down#删除数据
#cd /export/server/milvus
#sudo rm -rf volumes

安装Attu

Attu是一个多合一的Milvus管理工具,Attu旨在管理Milvus并与之交互,它能提供以下功能:

  • 数据库、集合和分区管理:有效地组织和管理Milvus设置;

  • 向量嵌入的插入、索引和查询:轻松处理Milvus向量数据操作;

  • 执行矢量搜索:使用矢量搜索功能快速验证结果;

  • 用户和角色管理:轻松管理Milvus权限和安全性;

  • 查看系统拓扑:可视化Milvus系统架构以实现更好的管理和优化。

Attu安装很简单,在启动Milvus服务后,执行以下命令来安装Attu。

#安装Attu
docker run -p 8000:3000 -e HOST_URL=你的IP地址:8000 -e MILVUS_URL=你的IP地址:19530 zilliz/attu:latest

安装完成后访问图形界面。

#访问
http://你的IP地址:8000

在这里插入图片描述


点击 连接 后进入数据库管理页面。


在这里插入图片描述


Milvus的远程连接与基本操作

在部署好Milvus Standalone后,我们可以在python里面远程连接Milvus服务器,然后对Milvus数据库进行一些操作。

1.首先安装pymilvus

#安装pymilvus
!pip install -U pymilvus
#如果上面语句安装比较慢,可以使用国内其他源,如:
#!pip install -U pymilvus -i https://pypi.tuna.tsinghua.edu.cn/simple/

2.实例化一个MilvusClient并连接远程Milvus服务

from pymilvus import MilvusClient
client = MilvusClient(uri="你的IP地址:19530", token="username:password")

3.创建一个测试数据库

client.create_database(db_name="milvus_testdb1")
#列出所有数据库
#client.list_databases()

可以在Attu中看到数据库已成功创建。


在这里插入图片描述


4.创建Collections

client = MilvusClient(uri="你的IP地址:19530", token="username:password", db_name='milvus_testdb1')
#创建Collections,Collections类似传统SQL数据库中的表。
if client.has_collection(collection_name="demo_collection"):client.drop_collection(collection_name="demo_collection")
client.create_collection(collection_name="demo_collection",dimension=768 #向量维度
)

5.插入向量数据

#使用随机生成的假向量表示来演示
import random
#原始文档
docs = ["Efficiently organize and manage your Milvus setup.","Easily handle Milvus vector data operations.","Visualize Milvus system architecture for better management and optimization.",
]
#文档对应生成的embedding表示(假向量表示,真实向量表示需要导入词嵌入模型来实现)
vectors = [[random.uniform(-1, 1) for _ in range(768)] for _ in docs]
#Milvus以字典列表的形式插入数据,列表中的每个字典代表一条数据记录,称为实体。
data = [{"id": i, "vector": vectors[i], "text": docs[i], "subject": "attu_description"} for i in range(len(vectors))
]print("Data has", len(data), "entities, each with fields: ", data[0].keys())
print("Vector dim:", len(data[0]["vector"]))#插入数据,把数据插入Collections
res = client.insert(collection_name="demo_collection", data=data)
print(res)

可以看到插入的三条向量数据如下:


在这里插入图片描述


基本操作就演示到这,更深入的操作可以自行探索。

相关文章:

向量数据库Milvus的部署与使用

Milvus介绍 Milvus是一个开源、高性能、高扩展性的向量数据库,Milvus可以用来存储文本、图像、音频等非结构化数据,本质上是用Embeddings将非结构化数据转换成能够捕捉其基本特征的数字向量,然后将这些向量存储在向量数据库中,从…...

1.文档搜索软件Everything 的使用介绍

Everything 是 Windows 文件搜索的效率天花板,通过灵活语法和极速响应,彻底告别「找文件焦虑」。 定位:一款专注于 极速文件名搜索 的 Windows 工具,免费且轻量(安装包仅几 MB)。 核心优势…...

2025系统架构师---论企业集成平台的技术与应用

摘要 本文探讨了企业集成平台的技术与应用,以某商业银行开发的绩效考核平台系统为例,分析了企业集成平台的基本功能及关键技术,并详细阐述了在表示集成、数据集成、控制集成和业务流程集成方面的应用和实施方式。通过异构系统之间的集成,绩效考核平台与其他系统实现了有机…...

STM32Cubemx-H7-16-FreeRTOS-1-创建工程,实现两个灯的基本亮灭

前言 裸机也是开发到一半快要结束了,接下来开始上操作系统,然后先能使用基本的,后面再讲理论。 Cubemx创建工程 基本打开生成就不说了,直接从界面开始 从这里开始吧 1.首先开启外部高速晶振 2.先这样选择 选择HSE时钟环&#xff…...

深入浅出限流算法(二):更平滑的滑动窗口

好的,接续上一篇关于固定窗口计数器的讨论,我们现在来看看它的改进版——滑动窗口算法,它旨在解决固定窗口那个恼人的“临界突变”问题。 在上一篇文章中,我们探讨了最简单的固定窗口计数器限流算法,并指出了它最大的缺…...

纷析云开源财务软件:基于Spring Boot的轻量化财务中台实践

一、技术架构与核心设计 全栈开源技术栈 后端框架:基于Spring Boot 3.x构建,集成MyBatis-Plus作为ORM层,支持JDK 17特性(如虚拟线程并发处理),确保高吞吐与稳定性。 前端框架:采用Vue 3 TypeS…...

软考-软件设计师中级备考 5、数据结构 树和二叉树

1、树的基本概念 节点的度:节点拥有的子树数目。例如,若一个节点有 3 棵子树,其度为 3。树的度:树中节点的最大度数。如树中所有节点的度最大为 4,则树的度是 4。叶子节点:度为 0 的节点,也…...

php 需要学会哪些技术栈,掌握哪些框架

作为一个「野生」程序员,我的学习过程比较急功近利。 我记得自己写的第一个 PHP 程序是留言本。一上来对 PHP 一窍不通,所以直接去网上找了个留言本的源码,下载下来后先想办法让它在自己电脑上运行起来。通过这个过程掌握了 PHP 开发环境的搭…...

短视频矩阵系统贴牌批量剪辑功能开发,支持OEM

一、引言 在短视频行业蓬勃发展的当下,短视频矩阵运营已成为企业和个人实现品牌推广、流量增长的重要策略。然而,面对大量的视频素材和多个运营账号,传统的单个视频剪辑、发布方式效率极低,难以满足矩阵运营的需求。为了提高内容…...

【Java EE初阶】多线程(二)

1.在图中代码,我们调用了start方法,真正让系统调用api创建了一个新线程,而在这个线程跑起来之后,就会自动执行到run。调用start方法动作本身速度非常快,一旦执行,代码就会立即往下走,不会产生任…...

分布式链路追踪理论

基本概念 分布式调用链标准-openTracing Span-节点组成跟踪树结构 有一些特定的变量,SpanName SpanId traceId spanParentId Trace(追踪):代表一个完整的请求流程(如用户下单),由多个Span组成…...

conda和bash主环境的清理

好的!要管理和清理 Conda(或 Bash)安装的包,可以按照以下步骤进行,避免冗余依赖,节省磁盘空间。 📌 1. 查看已安装的包 先列出当前环境的所有安装包,找出哪些可能需要清理&#xff…...

Linux系统管理与编程14:Shell变量及定制bash登录界面

兰生幽谷,不为莫服而不芳; 君子行义,不为莫知而止休。 1.准备工作 创建用户wu useradd wu passwd wu 修改权限 chmod uw /etc/sudoers 编辑 visudo 在root行下,添加:“wu ALL……” 图14- 1 恢复文件权限并…...

微信小程序开发笔记

一、首先,下载一个微信开发者工具。前端项目就正常创建,由于本人的前端一塌糊涂,就让AI给我生成了一个我想要的前端项目(包括后面写功能)。 这里开发的时候会用到这个,但是一定注意服务部署到服务器上再本…...

SEO长尾关键词优化核心策略

内容概要 在搜索引擎优化领域,长尾关键词因其精准的流量捕获能力与较低的竞争强度,已成为提升网站自然流量的核心突破口。本文围绕长尾关键词优化的全链路逻辑,系统拆解从需求洞察到落地执行的五大策略模块,涵盖用户搜索意图解析…...

第一节:Linux系统简介

理论知识 Linux的起源与发展:1991 年,芬兰赫尔辛基大学的学生林纳斯托瓦兹受到 Minix 和 Unix 思想的启发,开始编写 Linux 内核。最初,它只是一个个人项目,但随着开源社区的加入,Linux 迅速发展壮大。如今…...

微信聊天机器人搭建 教程/开发

创建标签 简要描述: 添加标签 请求URL: http://域名地址/addContactLabel 请求方式: POST 请求头Headers: Content-Type:application/jsonAuthorization:login接口返回 参数: 参数名必…...

Ubuntu中C++项目安装二次规划库——qpOASES 库

一、在Ubuntu安装qpOASES 库 步骤 1:更新系统包列表 首先,打开终端,执行以下命令更新系统的包列表,以确保你能获取到最新的软件包信息。 sudo apt update 步骤 2:安装必要的依赖 qpOASES库的编译和安装需要一些基…...

JavaScript-基础语法

前言: 一个网页由三个部分组成: 1.html:超文本标记语言,用于控制网页的结构(页面元素和内容) 2.css:级联样式表,用于控制网页布局,涉及对网页文字,背景,布局进…...

已有 npm 项目,如何下载依赖、编译并运行项目

诸神缄默不语-个人技术博文与视频目录 这篇博文的适用场景是比如说反正你现在有了一个现成的npm项目,然后无论如何,你要把前端挂起来。 文章目录 一、准备工作1. 安装 Node.js 和 npm2. 克隆或获取项目代码 二、安装项目依赖三、了解 npm 脚本命令四、构…...

第四章:Messaging and Memory

Chapter 4: Messaging and Memory 从配置管理到消息记忆:如何让AI记住对话内容? 在上一章的配置管理中,我们已经能让系统记住所有参数设置。但你是否想过:如果用户连续提问“今天天气如何?”和“明天呢?”…...

iPhone闹钟无法识别调休致用户迟到,苹果客服称会记录反馈

iPhone闹钟无法识别调休致用户迟到,苹果客服称会记录反馈 基于 6 个来源 因“五一”劳动节调休,4月27日(周日)本应上班,不少iPhone用户却因闹钟未响迟到,“调休”“当苹果闹钟遇到调休”话题登上热搜。苹…...

npm error code CERT_HAS_EXPIRED

npm error code CERT_HAS_EXPIRED 欢迎来到我的主页,我是博主英杰,211科班出身,就职于医疗科技公司,热衷分享知识,武汉城市开发者社区主理人 擅长.net、C、python开发, 如果遇到技术问题,即可私…...

C++ 之 【list的简介、list 的构造函数、iterator、容量操作、元素访问、增删查改与迭代器失效】

目录 1.list的介绍 2.list的使用 2.1 构造函数 2.2 iterator 的使用 2.3 容量操作 2.4 元素访问 2.5 增删查改 2.5.1头插头删与尾插尾删 2.5.2 insert 、erase 函数 2.5.3 clear、swap函数 2.5.4 关于find函数 3.迭代器失效 1.list的介绍 (1)list的底层通常实现为带…...

使用手机录制rosbag包

文章目录 简介录制工具录制步骤录制设置设置IMU录制频率设置相机分辨率拍照模式录制模式数据制作获取数据数据转为rosbag查看rosbag简介 ROS数据包(rosbag)是ROS系统中用于记录和回放传感器数据的重要工具,通常用于算法调试、系统测试和数据采集。传统上,rosbag依赖于ROS环…...

使用阿里云 CDN 保护网站真实 IP:完整配置指南

使用阿里云 CDN 保护网站真实 IP:完整配置指南 一、宝塔面板准备工作1. 确认网站部署状态2. 宝塔中检查网站配置 二、配置阿里云 CDN1. 添加域名到 CDN2. 配置 DNS 解析3. 配置成功确认 三、宝塔面板安全加固(隐藏 IP 的关键步骤)1. 禁止通过…...

JAVA-StringBuilder使用方法

JAVA-StringBuilder使用方法 常用方法 append(Object obj) 追加内容到末尾 sb.append(" World"); insert(int offset, Object obj) 在指定位置插入内容 sb.insert(5, “Java”); delete(int start, int end) 删除指定范围的字符 sb.delete(0, 5); replace(int start…...

Milvus(9):字符串字段、数字字段

1 字符串字段 在 Milvus 中,VARCHAR 是用于存储字符串数据的数据类型。定义VARCHAR 字段时,有两个参数是必须的: 将datatype 设置为DataType.VARCHAR 。指定max_length ,它定义了VARCHAR 字段可存储的最大字符数。max_length 的有…...

locust压力测试

安装 pip install locust验证是否安装成功 locust -V使用 网上的教程基本上是前几年的,locust已经更新了好几个版本,有点过时了,在此做一个总结 启动 默认是使用浏览器进行设置的 # 使用浏览器 locust -f .\main.py其他参数 Usage: locust […...

Uniapp:showLoading(等待加载)

目录 一、出现场景二、效果展示三、具体使用一、出现场景 在项目的开发中,我们经常会请求后台接口返回数据,但是每一个接口返回数据的时间不一致,有的快,有的慢,这个时候如果不加一个遮罩层,接口返回慢的时候,非常影响用户体验 二、效果展示 三、具体使用 显示加载框…...

线性代数的本质大白话理解

先一句话总结的如下: 线性代数的本质,就是研究“线性变化”——包括空间中点、向量、矩阵之间如何通过线性规则(加法、数乘)变化和联系,并理解这些变化背后的结构。 1. 向量(Vector)——不是数据…...

【Rust通用集合类型】Rust向量Vector、String、HashMap原理解析与应用实战

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…...

Kotlin await等待多个异步任务都完成后才进行下一步操作

Kotlin await等待多个异步任务都完成后才进行下一步操作 import kotlinx.coroutines.*fun main() {runBlocking {val tagA "a"val tagB "b"val a async {worker(tagA)}val b async {worker(tagB)}println("${System.currentTimeMillis()} 等待 $t…...

佛山大旺高新区3650 M5 ERP服务器维修案例

1:机器型号:联想system x3650 m5 2:故障问题:纺织公司由于没有专业的it网管,导致服务器各种爆故障灯,本次处理的是用户反馈最近ERP软件使用过程中经常弹出资源不足的报错。 3:于是预约我们工程…...

利用Python生成Xilinx FPGA ROM IP核 .coe初始化文件

以下是一个 Python 脚本,用于生成 Xilinx IP ROM 的.coe 格式初始化文件,假设ROM 深度为 1024,数据位宽为 32bit,使用随机的 32 位无符号数进行初始化: import random# 定义ROM的深度和数据位宽 rom_depth 1024 data…...

配置电子邮件服务

配置电子邮件服务 一.基于Postfix的邮件发送 1. 安装Postfix yum install postfix -y 再下载一个telnet工具 yum -y install telnet 启动Postfix systemctl start postfix systemctl enable postfix 查看系统中端口是否被Postfix使用 netstat -tnlp | gre…...

WGCAT工单系统发现错误 定时处理工单数据任务错误

一直在用WGCAT工单系统,今天在系统日志里,看到了这个错误提示,不知道是什么原因 2025-04-26 07:05:00.000 [taskScheduler-10] INFO com.wgcloud.task.ScheduledTask - 定时处理工单数据任务开始----------2025-04-26 07:05:00 2025-04-26 …...

软件工程(一):黑盒测试与白盒测试

黑盒测试(Black Box Testing) 定义 黑盒测试是指不关心程序内部实现细节,只关注输入和输出的测试方法。把被测软件当作一个“黑盒子”,只依据功能说明书或需求文档来编写测试用例,验证功能是否正确。 特点 不需要了…...

emqx部署

要修改文件-命名空间-节点选择器 #apiVersion: v1 ##kind: ConfigMap ##metadata: ## name: emqx-config ##data: ## emqx.conf: | ## # --- apiVersion: v1 kind: PersistentVolume metadata:name: emqx-pv spec:capacity:storage: 5GivolumeMode: FilesystemaccessMode…...

【KWDB 创作者计划】_KWDB产品技术解读

文章目录 每日一句正能量一、KWDB简介二、官网信息三、技术亮点解读(一)存储引擎(二)查询引擎(三)分布式架构 四、应用场景五、总结 每日一句正能量 你的心为什么这样分散,使得你放慢了脚步。他…...

C++ 表达式求值优先级、结合律与求值顺序(五十九)

1. 运算符优先级与结合律 优先级(Precedence) 决定未加括号时运算符如何“绑”在一起:5 10 * 20 / 2; // 等同于 5 ((10 * 20) / 2)结合律(Associativity) 决定同级运算符的结合方向: 左结合&#xff0…...

乐理学习笔记(一)---节拍与音符

节拍 衡量音的长度和节奏的基本单位,以强弱关系按照一定的规律循环进行 拍大腿、拍手 类型 上面的这些不同类型节拍的强弱关系中第一个都是强(起确定性作用,而不是音量最大) 强和弱是决定性的区别,每一个强拍是和弦…...

《系统架构 - Java 企业应用架构中的完整层级划分》

文章目录 Java 企业应用架构中的完整层级划分核心层级(基础架构)业务逻辑层接口层基础设施层辅助层级特殊架构层级现代架构扩展层各层调用关系示例分层原则建议 Java 企业应用架构中的完整层级划分 除了常见的 Controller、Service、DAO 等标准层级外&a…...

Adobe Lightroom Classic v14.3.0.8 一款专业的数字摄影后期处理软件

软件介绍 Adobe Lightroom Classic 2025中文激活版(Adobe桌面照片编辑软件)LRC2025(LR2025本地离线版)是一款桌面照片编辑器和相册管理软件的raw格式编辑软件,支持各种RAW图像相机配置,HDR全景照片&#x…...

SQL 易混易错知识点笔记1(drop,role,%,localhost)

DROP 与 DELETE 的区别 DELETE:删除表中的数据行,属于DML操作,可回滚,可带WHERE条件 DELETE FROM table WHERE condition; -- 删除特定行 DELETE FROM table; -- 删除所有行但保留表结构 DROP:删除整个数据库对象(表、…...

C++23 std::bind_back:一种调用包装器 (P2387R3)

文章目录 引言背景知识旧有的绑定工具C20的std::bind_front std::bind_back的定义和功能定义功能 std::bind_back的使用场景简化回调函数部分应用参数 std::bind_back与其他绑定工具的对比与std::bind的对比与std::bind_front的对比 总结 引言 在C的发展历程中,每一…...

使用多线程快速向Excel中快速插入一万条数据案例

当有大量数据需要存入Excel时,使用传统的单线程完成会有以下这些弊端: 导入速度慢:单线程一次只能处理一个任务,在导入大量数据时,需要逐个将数据写入 Excel。这意味着 CPU 在大部分时间里只能处理一个数据块&#xff…...

RestRequest ,newtonsoft解析

var request new RestRequest(Method.GET); IRestResponse response client.Execute(request); Console.WriteLine(response.Content); //保存token Newtonsoft.Json.Linq.JObject obj3 Newtonsoft.Json.Linq.JObject.Pars…...

vs2022解决 此项目需要MFC库。从visual studio安装程序(单个组件选项卡)为正在使用的任何工具和体系结构安装他们问题

使用visual studio 2022创建MFC 单文档的项目,编译器报错: 严重性 代码 说明 项目 文件 行 禁止显示状态 详细信息 错误 MSB8041 此项目需要 MFC 库。从 Visual Studio 安装程序(单个组件选项卡)为正在使用的任何工具集和体系结构安装它们。 osgEarthMFC…...

面试算法高频08-动态规划-03

练习题 题目描述 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每…...