docker操作手册

基础概念 镜像(Image) 作用:容器的模板,只读。 容器(Container) 作用:镜像运行后的实例,可读写。 数据卷(Volume) 作用:数据持久化存储。 网络(Network) 作用:容器之间通信。 镜像操作 查看镜像 1 docker images 1 docker image ls 拉取镜像 1 docker pull nginx 1 docker pull nginx:1.25 参数说明: nginx:1.25 → 指定版本 tag(默认 latest) 删除镜像 1 docker rmi nginx 1 docker rmi -f nginx 1 docker image prune -f 参数说明: -f → 强制删除 prune → 删除未使用镜像 构建镜像 1 docker build -t myapp:1.0 . 参数说明: ...

January 2, 2026 · 3 min · 450 words

InnoDB存储引擎核心

模块二:InnoDB 存储引擎核心 一、InnoDB 整体架构 InnoDB 是 MySQL 默认存储引擎(8.0+)。 核心能力: 事务支持 行级锁 MVCC 崩溃恢复 外键支持 逻辑结构: Buffer Pool(内存层) Redo Log Undo Log 表空间 B+树索引 二、记录结构(Row Format) InnoDB 支持的行格式: Compact(默认) Dynamic Compressed Redundant(已淘汰) 查看表行格式: 1 SHOW TABLE STATUS LIKE 'table_name'; 记录结构组成 每条记录包含: 变长字段长度列表 NULL值列表 记录头信息 列数据 隐藏字段: DB_TRX_ID(事务ID) DB_ROLL_PTR(回滚指针) DB_ROW_ID(隐藏主键) 三、数据页结构(Page Structure) InnoDB 以"页"为基本单位管理数据。 默认页大小: 16KB 页结构组成: File Header Page Header Infimum + Supremum User Records Free Space Page Directory File Trailer 核心理解: ...

January 2, 2026 · 1 min · 170 words

MySQL基础架构与运行机制

模块一:MySQL 基础架构与运行机制 一、客户端 / 服务器模型 MySQL 采用典型的 C/S 架构: 客户端 → 连接层 → 服务层 → 存储引擎层 → 文件系统 逻辑分层: 连接层(Connection Layer) SQL层(Server Layer) 存储引擎层(Engine Layer) 二、连接过程 客户端发起连接时流程: 建立网络连接 认证校验 权限检查 分配线程 等待执行SQL 支持的连接方式: TCP/IP Unix 域套接字 命名管道(Windows) 共享内存(Windows) 查看当前连接: 1 SHOW PROCESSLIST; 查看最大连接数: 1 SHOW VARIABLES LIKE 'max_connections'; 三、线程管理机制 MySQL 每个连接默认对应一个线程。 模型: 连接 = 线程 = 会话 问题: 高并发下线程创建/销毁开销大 上下文切换成本高 解决方案: 线程池(MySQL Enterprise / 第三方插件) 查看当前线程缓存: 1 SHOW VARIABLES LIKE 'thread_cache_size'; 四、服务器处理请求流程 完整SQL执行路径: ...

January 2, 2026 · 1 min · 174 words

nginx指南

Nginx 操作手册 一、安装与启动 安装(Ubuntu) 1 sudo apt update 1 sudo apt install nginx -y 启动 / 停止 / 重启 1 sudo systemctl start nginx 1 sudo systemctl stop nginx 1 sudo systemctl restart nginx 1 sudo systemctl reload nginx 开机自启 1 sudo systemctl enable nginx 二、状态查看 查看运行状态 1 sudo systemctl status nginx 查看端口占用 1 lsof -i:80 1 ss -lntp | grep 80 三、配置文件结构 1 /etc/nginx/nginx.conf 1 /etc/nginx/conf.d/ 1 /etc/nginx/sites-enabled/ 1 /var/log/nginx/ 四、常用配置 基础 server 1 2 3 4 5 6 7 8 9 server { listen 80; server_name example.com; location / { root /usr/share/nginx/html; index index.html; } } 反向代理 1 2 3 location /api/ { proxy_pass http://127.0.0.1:8080; } 1 2 3 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 负载均衡 1 2 3 4 upstream backend { server 192.168.1.10:8080; server 192.168.1.11:8080; } 1 2 3 location / { proxy_pass http://backend; } HTTPS 1 2 3 4 5 6 7 8 9 10 11 server { listen 443 ssl; server_name example.com; ssl_certificate /etc/nginx/ssl/fullchain.pem; ssl_certificate_key /etc/nginx/ssl/privkey.pem; location / { root /usr/share/nginx/html; } } 1 2 3 4 5 server { listen 80; server_name example.com; return 301 https://$host$request_uri; } 五、配置测试 1 nginx -t 1 nginx -s reload 六、日志 1 /var/log/nginx/access.log 1 /var/log/nginx/error.log 1 tail -f /var/log/nginx/access.log 1 tail -f /var/log/nginx/error.log 七、性能优化 1 2 gzip on; gzip_types text/plain text/css application/json application/javascript; 1 2 worker_processes auto; worker_connections 10240; 八、常见排查 1 lsof -i:80 1 nginx -t 1 pkill -9 nginx 九、生产建议 1 user nginx; 1 client_max_body_size 20m; 1 server_tokens off; 1 autoindex off; 十、Docker 中运行 1 docker run -d --name nginx -p 80:80 nginx 1 docker run -d -p 80:80 -v /host/nginx.conf:/etc/nginx/nginx.conf nginx 1 docker logs nginx

January 2, 2026 · 2 min · 272 words

查询执行与优化原理

模块三:查询执行与优化原理 一、SQL 执行整体流程回顾 一条 SQL 从提交到返回结果的路径: 解析 SQL 预处理 优化器生成执行计划 执行器按计划调用存储引擎 返回结果 核心理解: 优化器决定"怎么查" 执行器负责"按计划执行" 存储引擎负责"真正读数据" 二、单表访问方法 MySQL 在访问单表时,会选择不同的访问方式。 使用 EXPLAIN 查看: 1 EXPLAIN SELECT * FROM user WHERE id = 1; 1️⃣ const 主键或唯一索引等值查询 最快方式 结果最多一行 2️⃣ ref 普通索引等值查询 返回多行 3️⃣ range 范围查询 BETWEEN、>、<、IN 等 4️⃣ index 全索引扫描 比 ALL 好,但仍然扫描全部索引 5️⃣ ALL 全表扫描 最慢方式 三、索引合并(Index Merge) 当多个单列索引可以同时使用时: 类型: Intersection(交集) Union(并集) Sort-Union 示例: 1 EXPLAIN SELECT * FROM user WHERE age = 20 OR city = 'beijing'; 四、多表连接原理 MySQL 连接的本质: ...

January 2, 2026 · 1 min · 204 words

GitFlow教程

五大分支 主分支(main/master) 作用:存放稳定、可随时部署到生产环境的代码。 特点: 分支上的每一个提交都对应一个正式的发布版本。 不允许直接在此分支上开发。 通常会被打上版本标签(如v1.0.0,v1.0.1) 开发分支(develop)锅 作用:存放最新开发成果的集成分支,是功能开发的集线器。 特点: 当develop分支上的代码达到稳定状态并准备发布时,会合并到main分支。 所有功能分支、发布分支都从develop分支拉取。 功能分支(feature/*)自己的碗 来源:develop 合并到:develop 命名惯例:feature/user-authentication,feature/payment-integration 作用:开发新功能。 生命周期: 从develop分支拉取。 开发完成后,合并回develop分支。 合并后,该功能分支通常被删除。 1 2 3 4 // 删除本地 git branch -d feature/user-authentication // 删除远程 git push origin --delete feature/user-authentication Bash 发布分支(release/*) 来源:develop 合并到:develop 和 main 命名惯例:release/1.2.0,release/2024-spring 作用:为发布新版本做准备。在此分支上只做Bug修复、生成版本号、整理文档等发布准备工作,不 再添加新功能。 生命周期: 当develop分支的功能足够进行一次发布时,从develop拉出release分支。 在此分支上进行最后的测试和修复。 准备就绪后,将release分支合并到main分支并打上版本标签。 同时,还必须合并回develop分支,因为release分支上的修复可能在develop分支上不存在。 热修复分支(hotfix/*) 来源:main 合并到:main 和 develop 命名惯例:hotfix/critical-security-patch,hotfix/1.2.1 作用:快速修复生产环境(main分支)上的紧急Bug。 生命周期: 从main分支上出现Bug的提交点(通常是最近的标签)拉取。 修复完成后,合并回main分支并打上新的版本标签(如v1.0.1), 同时,还必须合并回develop分支,确保修复在后续开发中也生效。 代码回退(重要) 工作区有改动,无add无commit无push 执行rollback ...

January 1, 2026 · 1 min · 131 words