MySQL - 数据库基础 | 数据库操作 | 表操作
文章目录
- 1、数据库基础
- 1.1为什么要有数据库
- 1.2主流的数据库
- 1.3连接MySQL
- 1.4服务器、数据库、表的关系
- 1.5 MySQL框架
- 1.6 SQL分类
- 1.7储存引擎
- 2.数据库操作
- 2.1创建数据库
- 2.2字符集和校验规则
- 2.3删除数据库
- 2.4修改数据库
- 2.5备份与恢复
- 2.6查看连接情况
- 3.表的操作
- 3.1创建表
- 3.2查看表结构
- 3.3添加数据
- 3.4查看表内容
- 3.5修改表
- 3.6删除表
1、数据库基础
1.1为什么要有数据库
文件也有保存数据的能力,那么为什么还需要数据库呢?
文件保存数据有以下几个缺点:
- 文件的安全性问题
- 文件不利于数据查询和管理
- 文件不利于存储海量数据
- 文件在程序中控制不方便
为了解决上述问题,专家们设计出更加利于管理数据的东西——数据库,它能更有效的管理数据。
数据库储存介质
- 磁盘
- 内存
1.2主流的数据库
- SQL Sever: 微软的产品,.Net程序员的最爱,中大型项目。
- Oracle: 甲骨文产品,适合大型项目,复杂的业务逻辑,并发一般来说不如MySQL。
- MySQL:世界上最受欢迎的数据库,属于甲骨文,并发性好,不适合做复杂的业务。主要用在电 商,SNS,论坛。对简单的SQL处理效果好。
- PostgreSQL :加州大学伯克利分校计算机系开发的关系型数据库,不管是私用,商用,还是学术研 究使用,可以免费使用,修改和分发。
- SQLite: 是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的 低,在嵌入式设备中,可能只需要几百K的内存就够了。
- H2: 是一个用Java开发的嵌入式数据库,它本身只是一个类库,可以直接嵌入到应用项目中。
1.3连接MySQL
mysql -h [hostname] -P [port] -u [username] -p
- [hostname] 是MySQL服务器的地址(例如localhost)(默认是127.0.0.1,如果省略-h选项默认连接本地)。
- [port]是MySQL服务器的端口号(默认是3306,如果省略-P选项,则使用默认端口)。
- [username] 是你的MySQL用户名。
- -p 选项会提示你输入密码。
如:root为登录用户名,忽略-h ,-P选项。
1.4服务器、数据库、表的关系
- 所谓安装数据库服务器,只是在机器上安装了一个数据库管理系统程序,这个管理程序可以管理多 个数据库,一般开发人员会针对每一个应用创建一个数据库。
- 为保存应用中实体的数据,一般会在数据库中创建多个表,以保存程序中实体的数据。
关系图:
1.5 MySQL框架
MySQL的整体架构可以分为几个主要层次,这些层次共同协作以提供数据库服务:
- 客户端(网络连接层): 提供与MySQL服务器建立连接的支持。客户端通过各自的API(如JDBC、ODBC等)与MySQL服务器进行通信。 处理连接请求,包括连接管理、用户认证和权限验证。MySQL服务器会维护一个连接池,以提高连接管理的效率。
- 服务层(MySQL Server): MySQL Server是数据库的核心部分,负责接收和处理来自客户端的SQL语句。 提供SQL接口,接受用户的SQL命令,并返回查询结果。 包含解析器(Parser),用于将SQL语句解析成可执行的内部数据结构(解析树)。 包含查询优化器(Optimizer),用于根据统计信息和算法生成最优的执行计划。 在早期版本中,还包含查询缓存(Cache),用于缓存查询结果以提高性能(但在MySQL 8.0及以后版本中已被移除)。
- 存储引擎层:
存储引擎是MySQL架构中最具特色的部分之一,它提供了数据的物理存储和访问机制。 MySQL支持多种存储引擎,如InnoDB、MyISAM、Memory等,每种存储引擎都有自己的特点和适用场景。 存储引擎负责实现数据的存储、检索、更新和删除等操作,并通过存储引擎API与MySQL Server进行交互。- 系统文件层:
包含MySQL数据库的实际数据文件、日志文件以及相关的配置文件。
数据文件和日志文件用于存储数据库的数据和事务日志,配置文件则用于设置MySQL服务器的运行参数。
1.6 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。
1.7储存引擎
存储引擎是:数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。MySQL的核心就是插件式存储引擎,支持多种存储引擎。
1.7.1查看引擎
show engines;
1.7.2储存引擎对比
2.数据库操作
在MySQL中,对于大多数SQL指令和关键字(如SELECT、INSERT、UPDATE等),MySQL服务器默认是不区分大小写的。这意味着你可以使用大写、小写或混合大小写来编写这些指令,它们都会被MySQL正确解析和执行。
2.1创建数据库
2.1.1语法
CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [,
create_specification] ...]
create_specification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name
- [IF NOT EXISTS]是一个可选部分,用于防止在尝试创建已经存在的数据库时发生错误。如果数据库已经存在,并且你包含了IF NOTEXISTS,那么MySQL将不会创建数据库,也不会返回错误。
- db_name是你想要创建的数据库的名称。
- [create_specification [, create_specification] …]部分允许你指定一个或多个创建规范,每个规范之间用逗号分隔。这些规范可以包括:
[DEFAULT] CHARACTER SET charset_name:设置数据库的默认字符集。字符集定义了数据库中可以存储的字符的集合。如果你不指定字符集,MySQL将使用默认字符集(这通常是utf8mb4,因为它支持完整的Unicode字符集)。
[DEFAULT] COLLATE collation_name:设置数据库的默认校对规则。校对规则定义了字符的比较和排序方式。如果你指定了字符集但没有指定校对规则,MySQL将使用与该字符集关联的默认校对规则。
2.1.2使用
CREATE DATABASE IF NOT EXISTS mydatabase
DEFAULT CHARACTER SET utf8mb3
DEFAULT COLLATE utf8mb3_general_ci;
- IF NOT EXISTS防止了如果mydatabase已经存在时发生错误。
- DEFAULT CHARACTER SET utf8mb3设置了数据库的默认字符集为utf8mb3。
- DEFAULT COLLATE utf8mb3_general_ci设置了数据库的默认校对规则为utf8mb3_general_ci,这是一种不区分大小写的校对规则。
2.1.3查看当前存在的数据库
SHOW DATABASES
2.2字符集和校验规则
2.2.1查看系统默认的字符集和校验规则
show variables like 'character_set_database'; //字符集
show variables like 'collation_database'; //字符校验规则
2.2.2查看系统支持的字符集和校验规则
show charset;
2.2.3校验规则对数据库的影响
- 字符集和校验规则不一致可能导致乱码,数据不一致的情况。
- 是否区分大小写。
2.3删除数据库
2.3.1语法
DROP DATABASE [IF EXISTS] db_name;
IF EXISTS : 这个选项代表如果数据库存在就删除,不存在就不执行任何操作,如果不加时,数据库不存在就会报错。
2.4修改数据库
主要是对字符集的修改
2.4.1语法
ALTER DATABASE db_nameCHARACTER SET charset_nameCOLLATE collation_name;
- db_name 是你想要更改的数据库的名称。
- charset_name 是你想要设置为默认字符集的字符集名称。
- collation_name 是与字符集相关联的校对规则名称。
2.4.2使用
ALTER DATABASE mydatabase CHARACTER SET gbk COLLATE gbk_chinese_ci;
2.4.3查看一个库的字符集和校验规则
SELECT SCHEMA_NAME, -- 选择数据库的名称DEFAULT_CHARACTER_SET_NAME, -- 选择数据库的默认字符集DEFAULT_COLLATION_NAME -- 选择数据库的默认校验规则(校对规则)
FROM information_schema.SCHEMATA -- 从information_schema数据库的SCHEMATA表中查询
WHERE SCHEMA_NAME = 'mydatabase'; -- 筛选条件:数据库名称必须为'mydatabase'
2.5备份与恢复
2.5.1备份
2.5.1.1语法
mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径 //单个数据库mysqldump -u root -p -B 数据库名1 数据库名2 ... > 数据库存放路径 //多个数据库
2.5.1.2使用
mysqldump -P3306 -u root -p -B d1 > ./d1.sql
2.5.2恢复
使用SOURCE命令执行备份文件中的SQL语句:
source 文件名.sql
2.6查看连接情况
show processlist
3.表的操作
3.1创建表
3.1.1语法
CREATE TABLE table_name (
field1 datatype comment 注释,
field2 datatype comment 注释,
field3 datatype comment 注释
) character set 字符集 collate 校验规则 engine 存储引擎;
- field 表示列名。
- datatype 表示列的类型。
- character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准。
- collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准。
- comment 后面跟的是注释。
3.1.2使用
3.1.2.1选择数据库
use 数据库名;//use helloworld;
3.1.2.2 创建表
create table student(-> id int->name varchar(32),->gender varchar(32)-> );
3.2查看表结构
desc 表名;
3.3添加数据
3.3.1语法
INSERT INTO users (字段名字) VALUES (填入的数据);
users: 表名
3.3.2使用
insert into student(id,name,gender) values(1,'张三','男');
3.4查看表内容
3.4.1语法
SELECT column1, column2, ...
FROM table_name
[WHERE condition]
[GROUP BY column1, column2, ...]
[HAVING condition]
[ORDER BY column1 [ASC|DESC], column2 [ASC|DESC], ...]
[LIMIT number_of_rows];
- SELECT: 这是SQL查询的起始部分,表明你希望从数据库中获取数据。 column1, column2, …:
你可以指定一个或多个字段(列),这些字段是你希望从表中检索的数据。 使用 * 可以选择所有字段。- FROM table_name: 指出你想要查询的表名。
- [WHERE condition](可选): 这是一个条件子句,用于过滤数据。只有满足条件的记录才会被选中。
可以使用各种比较运算符(如 =, <>, >, <, >=, <=)、逻辑运算符(如 AND, OR, NOT)以及字符串函数等。- [GROUP BY column1, column2, …](可选): 这个子句用于将结果集中的记录按一个或多个列进行分组。通常与聚合函数(如 COUNT(), SUM(), AVG(), MAX(), MIN())一起使用。
- [HAVING condition](可选): 用于过滤分组后的数据。与 WHERE 不同,HAVING 是在分组后应用的。
- [ORDER BY column1 [ASC|DESC], column2 [ASC|DESC], …](可选): 用于对结果集进行排序。 ASC表示升序(默认),DESC 表示降序。
- [LIMIT number_of_rows](可选): 限制返回的记录数。 常用于分页或当你只关心结果集的前几条记录时。
3.4.2举例
- 查询 users 表中的所有字段:
SELECT * FROM users;
- 查询 users 表中的 name 和 email 字段:
SELECT name, email FROM users;
- 查询 users 表中年龄大于30的用户:
SELECT * FROM users WHERE age > 30;
- 按 age 字段对 users 表中的记录进行升序排序:
SELECT * FROM users ORDER BY age ASC;
- 查询 orders 表中每个客户的订单总数,并按订单总数降序排序:
SELECT customer_id, COUNT(*) AS total_orders
FROM orders
GROUP BY customer_id
ORDER BY total_orders DESC;
- 查询 orders 表中订单总数超过10的客户:
SELECT customer_id, COUNT(*) AS total_orders
FROM orders
GROUP BY customer_id
HAVING total_orders > 10;
- 查询 users 表中的前5条记录:
SELECT * FROM users LIMIT 5;
3.5修改表
3.5.1增加字段
3.5.1.1语法
ALTER TABLE tablename ADD (column datatype [DEFAULT expr][, column datatype]...);
- ALTER TABLE tablename:指定要修改的表名。
- ADD:表示要添加列到表中。
- (column datatype [DEFAULT expr][, column datatype]…):在括号中指定要添加的列及其数据类型。可以为每个列指定一个默认值(DEFAULTexpr),多个列之间用逗号分隔。
3.5.1.2使用
添加年龄字段
ALTER TABLE student ADD (age INT);
3.5.2修改属性
3.5.2.1语法
ALTER TABLE tablename MODIFY (column datatype [DEFAULT expr][, column datatype]...);
MODIFY:表示要修改表中已存在的列的数据类型或默认值。
其他部分与添加列的语法相同。
3.5.2.2使用
将性别字段的varchar(32)改为char
ALTER TABLE student MODIFY gender char(10);
3.5.3删除字段
3.5.3.1语法
ALTER TABLE users DROP signup_date;
3.5.3.2使用
删除性别字段
ALTER TABLE student DROP gender;
3.5.4修改表名
3.5.4.1语法
alter table 原表名 rename to 目标表名;
3.5.4.2使用
将表名student修改为st
alter table student rename to st;
3.5.5修改字段
3.5.5.1语法
alter table 表名 change 旧字段 新字段; --新字段需要完整定义
3.5.5.2使用
将name修改为xingming
alter table st change name xingming char(5);
3.6删除表
3.6.1语法
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...
- DROPTABLE:这是SQL中用于删除表的基本命令。执行此命令后,指定的表以及表中的所有数据将从数据库中永久删除,且无法恢复(除非有备份)。
- [TEMPORARY]:这是一个可选的关键字。如果指定了TEMPORARY,则命令将仅删除临时表。临时表是在当前会话(或连接)中创建的,仅对当前会话可见。当会话结束时,临时表会自动删除。如果不指定TEMPORARY,则命令将删除永久表。
- [IF EXISTS]:这也是一个可选的关键字。如果指定了IF EXISTS,那么在尝试删除不存在的表时,SQL命令不会报错。如果未指定IF EXISTS且尝试删除的表不存在,SQL命令将返回一个错误。
- tbl_name [, tbl_name]…:这里指定了要删除的表的名称。可以一次性删除多个表,表名之间用逗号分隔。
3.6.2使用
删除st表
drop table st;
相关文章:

MySQL - 数据库基础 | 数据库操作 | 表操作
文章目录 1、数据库基础1.1为什么要有数据库1.2主流的数据库1.3连接MySQL1.4服务器、数据库、表的关系1.5 MySQL框架1.6 SQL分类1.7储存引擎 2.数据库操作2.1创建数据库2.2字符集和校验规则2.3删除数据库2.4修改数据库2.5备份与恢复2.6查看连接情况 3.表的操作3.1创建表3.2查看…...

maven父子项目
目录 一、创建Maven父子项目 二、父子项目的关联 三、父子项目的继承关系 四、构建父子项目 五、Maven父子项目的优势 Maven父子项目是一种项目结构,它允许一个父项目(也称为根项目)管理多个子项目(也称为模块)。…...

NLP论文速读(多伦多大学)|利用人类偏好校准来调整机器翻译的元指标
论文速读|MetaMetrics-MT: Tuning Meta-Metrics for Machine Translation via Human Preference Calibration 论文信息: 简介: 本文的背景是机器翻译(MT)任务的评估。在机器翻译领域,由于不同场景和语言对的需求差异&a…...

MyBatis——#{} 和 ${} 的区别和动态 SQL
1. #{} 和 ${} 的区别 为了方便,接下来使用注解方式来演示: #{} 的 SQL 语句中的参数是用过 ? 来起到类似于占位符的作用,而 ${} 是直接进行参数替换,这种直接替换的即时 SQL 就可能会出现一个问题 当传入一个字符串时ÿ…...

解决sql字符串
根据你描述的情况以及调试截图中的内容,我可以确认你的 sql 字符串在 Python 中由于转义字符的问题,可能导致在 Oracle 中运行时出错。 以下是一些排查和修改建议: 问题分析 转义字符问题: 在调试界面中可以看到,DEC…...

深度解析:Android APP集成与拉起微信小程序开发全攻略
目录 一、背景以及功能介绍 二、Android开发示例 2.1 下载 SDK 2.2 调用接口 2.3 获取小程序原始Id 2.4 报错提示:bad_param 2.4.1 错误日志 2.4.2 解决方案 相关推荐 一、背景以及功能介绍 需求:产品经理需要APP跳转到公司的小程序(最好指定页…...

Leetcode 被围绕的区域
算法思想(解题思路): 这道题的核心是 将所有被边界包围的 O 保留下来,而将其他被围绕的 O 转换为 X。为了实现这一目标,我们可以分三步完成: 第一步:标记边界及其相连的 O 为特殊标记ÿ…...

ssm框架-spring-spring声明式事务
声明式事务概念 声明式事务是指使用注解或 XML 配置的方式来控制事务的提交和回滚。 开发者只需要添加配置即可, 具体事务的实现由第三方框架实现,避免我们直接进行事务操作! 使用声明式事务可以将事务的控制和业务逻辑分离开来,提…...

React第五节 组件三大属性之 props 用法详解
特性 a、props最好是仅限于父子上下级之间的数据传递,如果是祖孙多级之间传递属性,可以考虑使用props是否合适,或者使用替代方案 useContext() 或者使用 redux状态管理; b、props 中的属性是只读属性,如果想修改其中的…...

测评部署和管理 WordPress 最方便的面板
新版宝塔面板快速搭建WordPress新手教程 - 倚栏听风-Morii - 博客园 初学者使用1Panel面板快速搭建WordPress网站 - 倚栏听风-Morii - 博客园 可以看到,无论是宝塔还是1Panel,部署和管理WordPress都有些繁琐,而且还需要额外去配置Nginx和M…...

【系统分析师】-2024年11月论文-论DevOps开发
1、题目要求 论Devops及其应用。Devops是一组过程、方法与系统的统称,用于促进开发、技术运营和质量保障部门之间的沟通,协作与整合。它是一种重视软体开发人员和工厂运维技术人员之间沟通合作的模式。透过自动化“软件交付”和“架构变更”的流程&…...

算法【子数组最大累加和问题与扩展】
子数组最大累加和问题是一个非常经典的问题,也比较简单。但是扩展出的问题很多,在笔试、面试中特别常见,扩展出的问题很多非常有趣,解法也比较巧妙。 下面通过一些题目来加深理解。 题目一 测试链接:https://leetcode…...

小程序23-页面的跳转:navigation 组件详解
小程序中,如果需要进行跳转,需要使用 navigation 组件,常用属性: 1.url :当前小程序内的跳转链接 2.open-type:跳转方式 navigate:保留当前页面,跳转应用内的某个页面,…...

AI社媒引流工具:解锁智能化营销的新未来
在数字化浪潮的推动下,社交媒体成为品牌营销的主战场。然而,面对海量的用户数据和日益复杂的运营需求,传统营销方法显得力不从心。AI社媒引流王应运而生,帮助企业在多平台中精准触达目标用户,提升营销效率和效果。 1.…...

【Node.js】全面解析 Node.js 安全最佳实践:保护您的应用
Node.js 是一种强大的 JavaScript 运行时,广泛用于构建现代 Web 应用和 API。然而,由于其开放性和异步特性,Node.js 应用容易受到多种安全威胁的攻击,比如 SQL 注入、跨站脚本 (XSS) 和拒绝服务攻击 (DoS)。在本文中,我…...

Docker 用法详解
文章目录 一、Docker 快速入门1.1 部署 MYSQL1.2 命令解读: 二、Docker 基础2.1 常见命令:2.1.1 命令介绍:2.1.2 演示:2.1.3 命令别名: 2.2 数据卷:2.2.1 数据卷简介:2.2.2 数据卷命令ÿ…...

Python小游戏28——水果忍者
首先,你需要安装Pygame库。如果你还没有安装,可以使用以下命令进行安装: 【bash】 pip install pygame 《水果忍者》游戏代码: 【python】 import pygame import random import sys # 初始化Pygame pygame.init() # 设置屏幕尺寸 …...

Kafka Offset 自动提交和手动提交 - 漏消费与重复消费
目录 1. 引言 2. Offset 提交方式概述 2.1 自动提交 Offset 2.2 手动提交 Offset 3. 漏消费与重复消费的问题分析 3.1 自动提交模式下的漏消费和重复消费 漏消费 重复消费 3.2 手动提交模式下的漏消费和重复消费 漏消费 重复消费 4. 自动提交与手动提交的选择 4.1…...

Vue3父组件和子组件
子组件暴露方法给父组件,父组件传值 子组件 const editCalendar (value: string) > {console.log(获取父组件的值, value)};//暴露给外部调用defineExpose({editCalendar,}); 父组件 <template> <CalendarEdit ref"editRef" /> </…...

Linux 定时任务全解析
文章目录 一、Cron 服务1.1安装1.2配置文件格式1.3使用方法1.4系统级与用户级 Cron 任务区别 二、At 服务2.1安装2.2工作原理2.3使用方法 一、Cron 服务 1.1安装 在大多数 Linux 发行版中,Cron 服务通常已经默认安装。例如在 Ubuntu 系统中,可以通过以…...

XLNet——打破 BERT 局限的预训练语言模型
近年来,深度学习在自然语言处理(NLP)领域取得了革命性进展,其中 BERT 的出现标志着双向语言建模的强大能力。然而,BERT 也存在一些局限性,限制了其在生成任务中的表现。2019 年,由 Google 和 Ca…...

开源代码统计工具cloc的简单使用
一.背景 公司之前开发了个小系统,要去申请著作权,需要填写代码数量。应该怎么统计呢?搜索了一下,还是用开源工具cloc吧!我的操作系统是windows,代码主要是java项目和vue项目。 二.到哪里找 可以去官方下载…...

如何创建一个项目用于研究element-plus的原理
需求:直接使用element-plus未封装成组件的源码,创建一个项目,可以使用任意的element-plus组件,可以深度研究组件的运行。例如研究某一个效果,如果直接在node_modules修改elment-plus打包之后的那些js、mjs代码…...

单片机进阶硬件部分_day2_项目实践
设计要求 从绘制原理图到画PCB板,完成智能云衣柜项目 STM32 (Modbus)云IOT衣物云端管理 华为PCB布线规范 基于IoT的智享家主控系统 步骤分析 需求分析 器件选型绘制原理图(器件连接)PCB布局、布线泪滴、铺铜、添加丝印…...

labview关于文件路径的问题
在调用文件或拆分文件的时候经常会用到拆分路径函数和创建路径函数,最常用的也是当前应用程序目录或者是当前VI目录。 这里我们看到应用程序目录和VI目录在同一项目中,应用程序目录更像是根目录,往下拆分成了各个VI的子目录。 接下来我们来拆…...

72项!湖北省2024年度第二批省级科技计划项目拟立项项目公示!
本期精选 SCI&EI ●IEEE 1区TOP 计算机类(含CCF); ●EI快刊:最快1周录用! 知网(CNKI)、谷歌学术期刊 ●7天录用-检索(100%录用),1周上线; 免费稿件评估 免费匹配…...
神经网络问题之:梯度不稳定
梯度不稳定是深度学习中,特别是在训练深度神经网络时常见的一个问题,其本质涉及多个方面。 一、根本原因 梯度不稳定问题的根本原因在于深度神经网络的结构和训练过程中的一些固有特性。随着网络层数的增加,梯度在反向传播过程中会逐层累积变…...

ORACLE删不掉job,如何解决。
问题: 删掉 NYZSM 时出错: ORA-27478: 作业 “ZHY.NYZSM” 正在运行 ORA-06512: 在 “SYS.DBMS_ISCHED”, line 213 ORA-06512: 在 “SYS.DBMS_SCHEDULER”, line 657 ORA-06512: 在 line 2 1、停止作业: 使用DBMS_SCHEDULER.STOP_JOB过程来…...

可视化建模与UML《活动图实验报告》
你当像鸟飞往你的山。 一、实验目的: 1、熟悉活动图的基本功能和使用方法。 2、掌握使用建模工具软件绘制协作图的方法 二、实验环境: window7 | 10 | 11 EA15 三、实验内容: <1>绘制学生选课系统中添加课程(Add Course)用例的活动图…...

基于 MUSA 的大语言模型推理和服务框架vLLM
1. 引言 vLLM是一个高性能且内存高效的大语言模型推理和服务框架,也是当前业界使用范围最广的大模型推理框架,截至目前github star数28.4k。该框架性能优秀,而且部署容易,使用CUDA/ROCm提供GPU加速能力。但vLLM目前不支持使用摩…...