MySQL面试题及详细答案 155道(061-080)

前后端面试题》专栏集合了前后端各个知识模块的面试题,包括html,javascript,css,vue,react,java,Openlayers,leaflet,cesium,mapboxGL,threejs,nodejs,mangoDB,MySQL,Linux… 。

前后端面试题-专栏总目录

在这里插入图片描述

文章目录

  • 一、本文面试题目录
      • 61. 如何查看MySQL中的死锁日志?
      • 62. MySQL中什么是索引合并?
      • 63. 如何在MySQL中实现行级锁?
      • 64. MySQL中`char`和`varchar`的区别?
      • 65. 什么是MySQL的外键约束?如何创建外键?
      • 66. MySQL中如何实现分页查询的优化?
      • 67. 什么是MySQL的回表查询?如何避免?
      • 68. MySQL中`drop`、`truncate`和`delete`的区别?
      • 69. 如何在MySQL中创建自增主键?
      • 70. MySQL中如何处理并发插入问题?
      • 71. MySQL中什么是覆盖索引?如何创建?
      • 72. MySQL中如何实现定时任务?
      • 73. MySQL中如何查看表的结构?
      • 74. MySQL中如何实现数据的导入和导出?
      • 75. 什么是MySQL的分区表?如何创建分区表?
      • 76. MySQL中如何查看和杀死慢查询进程?
      • 77. MySQL中如何实现表的复制?
      • 78. 如何在MySQL中使用CASE表达式?
      • 79. MySQL中的字符集转换是如何工作的?
      • 80. 在MySQL中如何进行表的重命名?
  • 二、155道面试题目录列表

一、本文面试题目录

61. 如何查看MySQL中的死锁日志?

InnoDB存储引擎会记录死锁相关信息到错误日志中,可通过以下方式查看:

  • 首先确定错误日志位置:执行SHOW VARIABLES LIKE 'log_error';,结果中的Value即为错误日志路径(如/var/log/mysql/error.log)。
  • 直接查看日志文件:使用cattail等命令查看该文件,死锁信息通常包含LATEST DETECTED DEADLOCK关键字,日志中会详细记录死锁发生时的事务、SQL语句、锁定的资源等信息,帮助分析死锁原因。

示例死锁日志片段:

LATEST DETECTED DEADLOCK
------------------------
2023-10-01 10:00:00 0x7f1234567890
*** (1) TRANSACTION:
TRANSACTION 12345, ACTIVE 10 sec starting index read
mysql tables in use 1, locked 1
LOCK WAIT 2 lock struct(s), heap size 1136, 1 row lock(s)
MySQL thread id 10, OS thread handle 140737354125056, query id 1234 localhost root updating
UPDATE orders SET status = 1 WHERE id = 100*** (2) TRANSACTION:
TRANSACTION 12346, ACTIVE 8 sec starting index read
mysql tables in use 1, locked 1
2 lock struct(s), heap size 1136, 1 row lock(s)
MySQL thread id 11, OS thread handle 140737354132224, query id 1235 localhost root updating
UPDATE orders SET status = 2 WHERE id = 200
*** WE ROLL BACK TRANSACTION (2)

62. MySQL中什么是索引合并?

索引合并是MySQL优化器的一种策略,当查询条件中涉及多个索引列时,优化器可能会将多个单列索引合并使用,以提高查询效率。例如,当WHERE子句中使用OR连接两个索引列条件时,MySQL可能会分别使用两个索引查询,再合并结果。

示例:
假设有表usersidname分别有单列索引,执行:

SELECT * FROM users WHERE id = 10 OR name = 'Alice';

优化器可能会分别使用id索引和name索引查询,再将结果合并,此时EXPLAINtype列会显示index_merge

注意:索引合并并非总是最优,复杂的合并可能导致性能下降,此时可考虑创建联合索引替代。

63. 如何在MySQL中实现行级锁?

InnoDB通过索引实现行级锁,只有通过索引条件检索数据时,才会使用行级锁;否则会使用表级锁。

共享锁(S锁):允许事务读取一行数据,加锁方式为SELECT ... LOCK IN SHARE MODE;,其他事务可加共享锁,但不能加排他锁。

示例:

-- 事务1加共享锁
START TRANSACTION;
SELECT * FROM users WHERE id = 1 LOCK IN SHARE MODE;
-- 此时事务2可加共享锁,但加排他锁会阻塞

排他锁(X锁):允许事务更新或删除一行数据,加锁方式为SELECT ... FOR UPDATE;或默认的DML操作(INSERT/UPDATE/DELETE),其他事务不能加任何锁。

示例:

-- 事务1加排他锁
START TRANSACTION;
SELECT * FROM users WHERE id = 1 FOR UPDATE;
-- 此时事务2加共享锁或排他锁都会阻塞

64. MySQL中charvarchar的区别?

特性charvarchar
长度固定性固定长度,不足补空格可变长度,只存储实际数据长度
存储空间占用固定空间(如char(10)占10字节)额外1-2字节存储长度,实际数据占n字节
处理速度快(无需计算长度)稍慢(需处理长度信息)
适用场景固定长度数据(如手机号、身份证号)可变长度数据(如姓名、地址)

示例:

  • char(10)存储"abc"时,实际存储"abc "(补7个空格)。
  • varchar(10)存储"abc"时,实际存储"abc"(加1字节长度标识)。

65. 什么是MySQL的外键约束?如何创建外键?

外键约束用于保证两个表之间的参照完整性,即子表的外键列值必须匹配主表的主键列值或为NULL。

创建外键的语法:

-- 主表(用户表)
CREATE TABLE users (id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50) NOT NULL
);-- 子表(订单表),外键关联用户表id
CREATE TABLE orders (id INT PRIMARY KEY AUTO_INCREMENT,user_id INT,order_no VARCHAR(20),-- 外键约束CONSTRAINT fk_orders_user FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE  -- 主表记录删除时,子表关联记录也删除ON UPDATE CASCADE  -- 主表记录更新时,子表关联记录也更新
);

外键作用:防止子表插入无效的关联数据,确保数据一致性。

66. MySQL中如何实现分页查询的优化?

普通分页(LIMIT offset, rows)在offset很大时效率低(需扫描大量数据后丢弃),优化方式如下:

  1. 基于主键的分页(适用于主键有序):
-- 第1页:LIMIT 0, 10
SELECT * FROM users WHERE id > 0 LIMIT 10;
-- 第2页:以上一页最后一条id为起点
SELECT * FROM users WHERE id > 10 LIMIT 10;

原理:通过主键过滤跳过前面的数据,避免全表扫描,效率极高。

  1. 使用索引覆盖分页
    若查询只需要部分字段,可通过索引覆盖避免回表,再关联查询完整数据:
-- 先通过索引获取分页的id
SELECT id FROM users ORDER BY create_time LIMIT 100000, 10;
-- 再通过id查询完整数据(假设id为主键索引)
SELECT * FROM users WHERE id IN (...);
No.大剑师精品GIS教程推荐
0地图渲染基础- 【WebGL 教程】 - 【Canvas 教程】 - 【SVG 教程】
1Openlayers 【入门教程】 - 【源代码+示例 300+】
2Leaflet 【入门教程】 - 【源代码+图文示例 150+】
3MapboxGL【入门教程】 - 【源代码+图文示例150+】
4Cesium 【入门教程】 - 【源代码+综合教程 200+】
5threejs【中文API】 - 【源代码+图文示例200+】
6Shader 编程 【图文示例 100+】

67. 什么是MySQL的回表查询?如何避免?

回表查询:当使用非聚簇索引(二级索引)查询时,索引叶子节点只存储索引键和主键,需通过主键到聚簇索引中查找完整数据,这个过程称为回表。

示例:
users主键为idname为二级索引,执行:

SELECT * FROM users WHERE name = 'Alice';
  • 步骤1:通过name索引找到Alice对应的主键id=10
  • 步骤2:通过id=10到聚簇索引中查询完整数据(回表)。

避免回表:使用索引覆盖,即查询的字段都包含在二级索引中,无需回表。

示例:创建联合索引(name, age),查询:

SELECT name, age FROM users WHERE name = 'Alice';

此时索引已包含所需字段,无需回表。

68. MySQL中droptruncatedelete的区别?

操作性质事务支持自增ID重置空间释放
DELETEDML语句,逐行删除支持(可回滚)不重置不释放(需OPTIMIZE
TRUNCATEDDL语句,清空表不支持(不可回滚)重置释放
DROPDDL语句,删除表结构不支持-释放

示例:

-- 删除数据(可回滚)
DELETE FROM users WHERE age < 18;-- 清空表(不可回滚,自增ID重置)
TRUNCATE TABLE users;-- 删除表(不可恢复)
DROP TABLE users;

69. 如何在MySQL中创建自增主键?

自增主键通过AUTO_INCREMENT关键字实现,特点是自动生成唯一值,通常作为表的主键。

创建方式:

CREATE TABLE users (id INT PRIMARY KEY AUTO_INCREMENT,  -- 自增主键name VARCHAR(50) NOT NULL
);

特性

  • 默认从1开始,每次插入自动+1。
  • 若插入时指定id值,且该值未被使用,则会使用指定值,后续自增值为MAX(id) + 1
  • 若删除表中数据,自增值不会重置(除非TRUNCATE表)。

修改自增值起始值:

ALTER TABLE users AUTO_INCREMENT = 1000;  -- 下次插入从1000开始

70. MySQL中如何处理并发插入问题?

并发插入可能导致数据一致性问题(如重复数据),解决方式如下:

  1. 使用唯一索引:对唯一字段创建唯一索引,防止重复插入。
-- 创建唯一索引
CREATE UNIQUE INDEX idx_username ON users(username);-- 插入时忽略重复数据
INSERT IGNORE INTO users (username) VALUES ('test');-- 插入时若重复则更新
INSERT INTO users (username, age) VALUES ('test', 20) 
ON DUPLICATE KEY UPDATE age = 20;
  1. 使用事务和锁:高并发场景下,通过SELECT ... FOR UPDATE加排他锁防止并发插入。
START TRANSACTION;
-- 检查数据是否存在(加锁防止其他事务插入)
SELECT * FROM users WHERE username = 'test' FOR UPDATE;
-- 若不存在则插入
INSERT INTO users (username) VALUES ('test');
COMMIT;

71. MySQL中什么是覆盖索引?如何创建?

覆盖索引:指查询的所有字段(SELECT子句)都包含在索引中,无需回表查询,可提高查询效率。

创建方式:根据查询字段创建包含这些字段的联合索引。

示例:
频繁执行查询:

SELECT id, name, age FROM users WHERE name = 'Alice';

此时可创建联合索引(name, age)id为主键,自动包含在二级索引中),索引包含nameageid,满足查询需求,实现覆盖索引。

72. MySQL中如何实现定时任务?

可通过EVENT(事件)实现定时任务,需先开启事件调度器:

-- 查看是否开启
SHOW VARIABLES LIKE 'event_scheduler';
-- 开启(临时)
SET GLOBAL event_scheduler = ON;
-- 永久开启需修改配置文件:event_scheduler = ON

创建定时任务示例:每天凌晨3点删除logs表中30天前的数据

DELIMITER //
CREATE EVENT clear_old_logs
ON SCHEDULE EVERY 1 DAY
STARTS '2023-10-01 03:00:00'
DO
BEGINDELETE FROM logs WHERE create_time < DATE_SUB(NOW(), INTERVAL 30 DAY);
END //
DELIMITER ;

管理事件:

-- 查看事件
SHOW EVENTS;-- 禁用事件
ALTER EVENT clear_old_logs DISABLE;-- 删除事件
DROP EVENT clear_old_logs;

73. MySQL中如何查看表的结构?

常用命令:

  1. DESCRIBE(或DESC):查看表字段信息
DESCRIBE users;  -- 或 DESC users;

结果包含字段名、类型、是否为NULL、主键、默认值等。

  1. SHOW CREATE TABLE:查看表创建语句(包含索引、引擎等详细信息)
SHOW CREATE TABLE users;

结果显示CREATE TABLE语句,可用于复制表结构。

  1. INFORMATION_SCHEMA查询:更灵活的元数据查询
SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_NAME = 'users' AND TABLE_SCHEMA = 'mydb';

74. MySQL中如何实现数据的导入和导出?

导出数据

  1. 使用mysqldump导出表结构和数据
# 导出整个数据库
mysqldump -u root -p mydb > mydb.sql# 只导出表结构
mysqldump -u root -p -d mydb > mydb_struct.sql# 只导出数据
mysqldump -u root -p -t mydb > mydb_data.sql
  1. 使用SELECT ... INTO OUTFILE导出数据到文件
SELECT * FROM users INTO OUTFILE '/tmp/users.csv' 
FIELDS TERMINATED BY ',' 
LINES TERMINATED BY '\n';

导入数据

  1. 使用SOURCE命令导入SQL文件
SOURCE /path/to/mydb.sql;
  1. 使用LOAD DATA INFILE导入文件数据
LOAD DATA INFILE '/tmp/users.csv' INTO TABLE users
FIELDS TERMINATED BY ',' 
LINES TERMINATED BY '\n';
No.大剑师精品GIS教程推荐
0地图渲染基础- 【WebGL 教程】 - 【Canvas 教程】 - 【SVG 教程】
1Openlayers 【入门教程】 - 【源代码+示例 300+】
2Leaflet 【入门教程】 - 【源代码+图文示例 150+】
3MapboxGL【入门教程】 - 【源代码+图文示例150+】
4Cesium 【入门教程】 - 【源代码+综合教程 200+】
5threejs【中文API】 - 【源代码+图文示例200+】
6Shader 编程 【图文示例 100+】

75. 什么是MySQL的分区表?如何创建分区表?

分区表:将大表按规则拆分为多个小的子表(分区),逻辑上是一个表,物理上是多个文件,可提高查询效率(只扫描相关分区)。

常见分区类型:

  • 范围分区:按列值范围分区(如按时间)。
  • 列表分区:按列值枚举分区(如按地区)。
  • 哈希分区:按哈希函数结果分区。

创建范围分区表示例(按create_time分年度存储):

CREATE TABLE orders (id INT PRIMARY KEY,order_no VARCHAR(20),create_time DATETIME
)
PARTITION BY RANGE (YEAR(create_time)) (PARTITION p2021 VALUES LESS THAN (2022),PARTITION p2022 VALUES LESS THAN (2023),PARTITION p2023 VALUES LESS THAN (2024),PARTITION p_other VALUES LESS THAN MAXVALUE
);

查询2022年数据时,只扫描p2022分区:

SELECT * FROM orders WHERE YEAR(create_time) = 2022;

76. MySQL中如何查看和杀死慢查询进程?

  1. 查看当前进程
-- 查看所有进程
SHOW PROCESSLIST;-- 查看完整信息(包括SQL语句)
SHOW FULL PROCESSLIST;

结果中Id为进程ID,State为状态(如Sending data表示执行中),Info为执行的SQL。

  1. 杀死慢查询进程
-- 根据进程ID杀死
KILL 123;  -- 123为要终止的进程Id

场景:当某条SQL长时间执行导致阻塞时,可通过SHOW PROCESSLIST找到对应的Id,再用KILL终止。

77. MySQL中如何实现表的复制?

  1. 复制表结构和数据
-- 方法1:基于查询
CREATE TABLE users_copy AS SELECT * FROM users;-- 方法2:先复制结构,再插入数据
CREATE TABLE users_copy LIKE users;  -- 复制结构(包括索引)
INSERT INTO users_copy SELECT * FROM users;
  1. 跨数据库复制
-- 复制到其他库
CREATE TABLE db2.users_copy LIKE db1.users;
INSERT INTO db2.users_copy SELECT * FROM db1.users;

注意CREATE TABLE ... AS SELECT不会复制索引和约束,CREATE TABLE ... LIKE会复制表结构、索引和约束。

78. 如何在MySQL中使用CASE表达式?

原理说明
CASE表达式用于在SQL中实现条件逻辑,类似于其他编程语言中的if-else或switch语句。它允许根据条件返回不同的值,可以用于SELECT、WHERE、ORDER BY等子句中。

示例代码

-- 简单CASE表达式
SELECT product_name,category,CASE categoryWHEN 'Electronics' THEN 'Tech'WHEN 'Clothing' THEN 'Apparel'ELSE 'Other'END AS category_group
FROM products;-- 搜索CASE表达式
SELECT order_id,total_amount,CASE WHEN total_amount > 1000 THEN 'High'WHEN total_amount > 500 THEN 'Medium'ELSE 'Low'END AS order_priority
FROM orders;

79. MySQL中的字符集转换是如何工作的?

原理说明
MySQL中的字符集转换发生在数据存储、检索和比较过程中。当客户端和服务器字符集不一致时,MySQL会自动进行转换。转换规则基于连接参数、表定义和列定义的字符集设置。

示例代码

-- 创建表时指定字符集
CREATE TABLE my_table (name VARCHAR(50) CHARACTER SET utf8mb4
) ENGINE=InnoDB DEFAULT CHARSET=latin1;-- 查看当前连接的字符集设置
SHOW VARIABLES LIKE 'character_set%';-- 修改连接字符集
SET NAMES utf8mb4;

80. 在MySQL中如何进行表的重命名?

原理说明
MySQL提供了RENAME TABLE语句用于重命名表,也可以使用ALTER TABLE语句。RENAME TABLE更高效,支持原子性操作,可以同时重命名多个表。

示例代码

-- 使用RENAME TABLE语句
RENAME TABLE old_table TO new_table;-- 使用ALTER TABLE语句
ALTER TABLE old_table RENAME TO new_table;-- 批量重命名表
RENAME TABLE table1 TO new_table1,table2 TO new_table2;

二、155道面试题目录列表

文章序号MySQL面试题155道
1MySQL面试题及详细答案155道(01-20)
2MySQL面试题及详细答案155道(20-40)
3MySQL面试题及详细答案155道(41-60)
4MySQL面试题及详细答案155道(61-80)
5MySQL面试题及详细答案155道(81-100)
6MySQL面试题及详细答案155道(101-120)
7MySQL面试题及详细答案155道(121-140)
8MySQL面试题及详细答案155道(141-155)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/92392.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/92392.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大数据中需要知道的监控页面端口号都有哪些

以下是一些大数据中常见组件监控页面的端口号&#xff1a;1. Hadoop&#xff1a;HDFS Web UI在Hadoop2.x版本中默认端口为50070&#xff0c;在Hadoop3.x版本中为9870&#xff0c;用于查看集群文件及目录&#xff1b;YARN Web UI端口为8088&#xff0c;可查看MR执行情况&…

时隔六年!OpenAI 首发 GPT-OSS 120B / 20B 开源模型:性能、安全与授权细节全解

为什么这次开放值得关注&#xff1f; OpenAI 时隔六年再次“放权重”&#xff0c;一次性公布 gpt-oss-120b 与 gpt-oss-20b 两个尺寸&#xff0c;并允许商业化二次开发 —— 采用 Apache 2.0 许可且可直接在 Hugging Face 下载(WIRED)。官方表示&#xff0c;开放旨在 降低门槛…

漏洞全讲解之中间件与框架漏洞(数字基础设施的“阿喀琉斯之踵“)

一、中间件漏洞的严峻现状根据Synopsys《2023年开源安全报告》显示&#xff1a;企业应用中平均包含158个中间件依赖高危漏洞年增长率达62%&#xff08;X-Force数据&#xff09;最危险漏洞&#xff1a;Log4j2&#xff08;CVE-2021-44228&#xff09;影响全球83%企业平均修复延迟…

Leetcode——菜鸟笔记2(移动0)

文章目录题目解题题目 解题 /*nums【0&#xff0c;1&#xff0c;0&#xff0c;3&#xff0c;2】numsSize5 nums【1.3.2.0.0】 1.找非零数&#xff0c;依次放在前面 2.剩下补0 */ void moveZeroes(int* nums, int numsSize) {int count0 0;int temp 0;for (int i 0; i < …

【LINUX网络】应用层自定义协议与序列化——通过实现一个简单的网络计算器来体会自定义协议

在了解了各种协议的使用以及简单的socket接口后&#xff0c;学会了“怎么传”的问题&#xff0c;现在来了解一下“传什么”的问题。 1. 序列化与反序列化 在前面的TCP、UDP的socket api 的接口, 在读写数据时, 都是按 "字符串" 的方式来发送接收的. 如果我们要传输一…

电脑一键重装系统win7/win10/win11无需U盘(无任何捆绑软件图文教程)

建议还是使用U盘进行重装系统&#xff0c;如果暂时还不会没有U盘&#xff0c;那就按照我这个来吧。 一&#xff0c;工具下载&#xff1a; 一键重装工具 密码:g5p3 二&#xff0c;镜像下载: 镜像站点&#xff1a;MSDN, 我告诉你 - 做一个安静的工具站 可以下载需要重装的系统…

深入探索Supervision库:Python中的AI视觉助手

深入探索Supervision库&#xff1a;Python中的AI视觉助手 在计算机视觉和机器学习领域&#xff0c;数据处理和结果可视化是项目成功的关键环节。今天我们将深入探讨一个强大的Python库——Supervision&#xff0c;它专为简化AI视觉项目的工作流程而设计。 什么是Supervision&am…

面向对象之类、继承和多态

系统是由汇总了数据和过程的“对象”组成的。在面向对象中&#xff0c;软件被定义为“类”&#xff0c;然后创建“实例”并运行。系统是通过“实例”之间的互相交换“消息”而运行的&#xff0c;但由于进行了“封装”&#xff0c;所以无法查看内部的详细内容&#xff0c;这被称…

传统防火墙与下一代防火墙

防火墙的发展过程第一种简单包过滤防火墙工作于&#xff1a;3、4层实现了对于IP、UDP、TCP信息的一些检查优点&#xff1a;速度快、性能高、可用硬件实现&#xff1b;兼容性较好检查IP、UDP、TCP信息缺点&#xff1a;安全性有限&#xff1a;仅能基于数据包的表面层面进行审查&a…

计算机视觉前言-----OpenCV库介绍与计算机视觉入门准备

前言&#xff1a;OpenCV库介绍与计算机视觉入门 OpenCV概述 OpenCV&#xff08;Open Source Computer Vision Library&#xff09;是一个开源的计算机视觉和机器学习软件库&#xff0c;由Intel于1999年首次发布&#xff0c;现由非盈利组织OpenCV.org维护。它包含了超过2500种…

AI面试系统助手深度评测:6大主流工具对比分析

导语&#xff1a;秋招季&#xff0c;企业如何破局高效招聘&#xff1f;随着2024年秋招季临近&#xff0c;企业招聘压力陡增。据牛客调研数据显示&#xff0c;74.2%的求职者已接触过AI面试&#xff0c;89.2%的企业认为AI显著提升了筛选效率。然而&#xff0c;面对市场上琳琅满目…

浮雕软件Artcam安装包百度云网盘下载与安装指南

如你所知&#xff0c;ArtCAM是一款专业的CAD/CAM软件工具&#xff0c;主要用于三维浮雕设计、珠宝加工及CNC数控雕刻&#xff0c;可将二维构思快速转化为三维艺术产品&#xff0c;深受使用者的喜爱。一、主要应用领域‌工艺品与制造业‌&#xff1a;木工雕花、标牌制作、模具制…

六边形架构模式深度解析

在分布式系统设计领域&#xff0c;六边形架构&#xff08;Hexagonal Architecture&#xff0c;又称端口与适配器模式&#xff09;作为一种以领域为中心的架构模式&#xff0c;通过明确分离核心业务逻辑与外部交互&#xff0c;有效提升系统的可测试性、可扩展性与可维护性。本文…

Beelzebub靶机

一、主机发现 arp-scan扫描一下局域网靶机 二、信息收集 nmap -sV -A -T4 -p- 192.168.31.132 22端口ssh服务和80端口web服务是打开的 目录扫描 三、渗透测试 访问一下web服务是个apache的首页 web页面分析 有一个很奇怪的地方&#xff0c;index.php明明是一个200的响应&a…

目前常用于视频会议的视频编码上行/下行带宽对比

视频编码上行/下行带宽对比H.264、VP8和VP9在不同终端数量下的上行与下行带宽需求差异&#xff08;单位&#xff1a;Mbps&#xff09;编码效率说明H.264基准编码标准&#xff0c;上行和下行带宽需求相对较高&#xff0c;硬件兼容性最佳VP8开源编码&#xff0c;上行和下行带宽均…

CrewAI ——构建多智能体协作的框架

CrewAI 是一个用于构建多智能体协作的框架&#xff0c;它的核心目标是通过协调多个智能体&#xff08;Agents&#xff09;来完成复杂任务。这些智能体不仅可以在单一任务中进行合作&#xff0c;还可以在动态、开放的环境中进行交互与协作。CrewAI 的设计和实现使得智能体之间能…

【数据结构初阶】--排序(五)--计数排序,排序算法复杂度对比和稳定性分析

&#x1f525;个人主页&#xff1a;草莓熊Lotso &#x1f3ac;作者简介&#xff1a;C研发方向学习者 &#x1f4d6;个人专栏&#xff1a; 《C语言》 《数据结构与算法》《C语言刷题集》《Leetcode刷题指南》 ⭐️人生格言&#xff1a;生活是默默的坚持&#xff0c;毅力是永久的…

InfluxDB 数据备份与恢复高级策略(二)

案例实战&#xff1a;InfluxDB 数据备份恢复业务场景描述假设我们正在参与一个大型的物联网项目&#xff0c;该项目涉及分布在不同区域的数千个传感器设备 &#xff0c;这些设备实时采集环境温度、湿度、设备运行状态等数据&#xff0c;并将这些数据存储在 InfluxDB 数据库中。…

sqli-labs通关笔记-第36关GET宽字符注入(单引号闭合 手工注入+脚本注入 3种方法)

目录 一、转义函数 1、mysqli_real_escape_string 2、addslashes 3、转义区别 二、宽字符注入 三、sqlmap之tamper 四、sqlmap之unmagicquotes 五、源码分析 1、代码审计 2、SQL注入安全性分析 六、渗透实战 1、进入靶场 2、id1探测 3、id-1探测 4、id1%df and…

手撕设计模式——咖啡点单系统之装饰模式

手撕设计模式——咖啡点单系统之装饰模式 1.业务需求 ​ 大家好&#xff0c;我是菠菜啊&#xff0c;好久不见&#xff0c;今天给大家带来的是——装饰模式。老规矩&#xff0c;在介绍这期内容前&#xff0c;我们先来看看这样的需求&#xff1a;现在有一个咖啡馆&#xff0c;有…