林

初夏网络

一个后端学习者的笔记本。白天上班,晚上和周末啃书、写代码、整理笔记。记下来的东西才是自己的,慢慢来,比较快。

--坚持学习(天)
--已整理笔记
--最近更新
纸上得来终觉浅,绝知此事要躬行。
—— 陆游《冬夜读书示子聿》
工具

Docker 入门:镜像、容器和数据卷

这周把 Docker 的基本概念过了一遍,用一个比喻记住:镜像是安装包,容器是装好后正在运行的程序,数据卷是程序外挂的硬盘。

docker run -d --name mysql8 \
  -p 3306:3306 \
  -v /data/mysql:/var/lib/mysql \
  -e MYSQL_ROOT_PASSWORD=your_password \
  mysql:8.0
网络

HTTP 状态码,常见的这些要背熟

排查经验:看到 502 先查后端进程是不是挂了,看到 504 先查是不是有慢查询。

数据库

MySQL 索引为什么会"失效"

建了索引但查询还是很慢,用 EXPLAIN 一看是全表扫描。整理了几种常见原因:

-- 不推荐
SELECT * FROM orders WHERE YEAR(created_at) = 2026;
-- 推荐
SELECT * FROM orders
WHERE created_at >= '2026-01-01' AND created_at < '2027-01-01';
Python

Python 虚拟环境:为什么每个项目都该有一个

之前所有包都装在全局,结果两个项目要的库版本冲突。现在养成习惯:新项目第一件事建虚拟环境。

python3 -m venv .venv
source .venv/bin/activate      # Windows: .venv\Scripts\activate
pip install -r requirements.txt
pip freeze > requirements.txt  # 导出依赖

记得把 .venv/ 加进 .gitignore,不要提交到仓库。

Linux

服务器磁盘满了怎么查

网站突然打不开,最后发现是日志把磁盘写满了。排查步骤记一下:

长期方案:给日志配 logrotate,按天切割、保留最近 7 天。

Python

列表推导式和生成器表达式的区别

squares = [x * x for x in range(10)]        # list
total = sum(x * x for x in range(10_000_000))  # generator,几乎不占内存
Linux

Linux 文件权限:rwx 和 755 是怎么对应的

chmod 755 deploy.sh
chown -R www:www /www/wwwroot/site   # 递归修改所有者
工具

开篇:为什么开始写学习笔记

学了好几个月,回头发现很多东西学过就忘,遇到同样的问题还要重新搜一遍。于是决定搭个小站,把每次学到的、踩过的坑都写下来。

给自己定的规矩:不追求多,追求写清楚;每篇都要有自己动手验证过的例子。

第一条记录:git commit -m "init: 学习笔记站上线"