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
英文地址,請注明出處:http://en.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;有…