shong.技术笔记
LEARN · BUILD · SHARE

把技术想明白,
再写下来。

这里是 Shong 的个人技术笔记。记录计算机技术的学习与思考,把复杂概念拆开,把解决问题的过程留下来。

Java 后端Linux计算机网络数据库
# 从理解一个问题开始
$ whoami
Shong · 一个持续学习的技术爱好者
$ cat interests.txt
代码 / 系统 / 网络 / 工程实践
$

技术笔记

点击标题,展开阅读
计算机网络基础概念

一个域名,如何同时提供网页和 API?

从请求路径出发,理解 Nginx 如何把不同请求交给不同的处理方式。

域名决定访问哪个网站,请求路径决定要取什么内容。例如,同一个域名下,/ 可以返回网页,而 /api/v1/ 下的请求可以转发给后端服务。

Nginx 可以通过 location 规则分配请求。location = / 只匹配首页;它不会接管 /api/v1/health。因此,增加首页时要明确匹配范围,并保留已有接口的转发规则。

https://example.com/                 → 网页
https://example.com/api/v1/health    → 后端接口

排查时,分别检查网页和接口的状态码及返回内容。网页正常,并不自动说明后端也正常。

延伸阅读:Nginx 官方请求处理说明 ↗
Linux工具入门

SSH:在另一台电脑上执行命令

区分本地客户端和远程服务器,弄清楚输入的命令到底在哪里运行。

SSH 用于建立安全的远程连接。你的电脑运行 SSH 客户端,远程机器运行 SSH 服务端。连接成功后,在远程终端输入的命令由远程机器执行。

ssh user@example.com
hostname
pwd

这里的用户名和域名只是示例。登录后,可以用 hostname 确认当前机器,用 pwd 确认所在目录,再开始操作。这两个检查能减少在错误机器或错误目录下执行命令的情况。

远程登录不会自动同步两台机器的文件。传输文件通常还需要使用 SFTP 或 SCP。

延伸阅读:OpenSSH 官方手册 ↗
数据库查询入门

理解索引,从一条查询开始

索引帮助查找数据,但是否有效,还需要结合查询条件和执行计划判断。

可以把索引理解成帮助查找内容的目录。合适的索引能够减少查询需要检查的数据,但它也占用空间,并带来写入维护成本,因此不应给每一列都添加索引。

EXPLAIN
SELECT id, title
FROM articles
WHERE category = 'Linux';

这是一个假设的文章表查询。可以先看执行计划中的 key,了解选择了哪个索引,再结合 rows 等估算信息分析。估算信息不等于实际执行耗时。

优化时从真实的慢查询出发,结合过滤条件、排序方式和数据分布判断,然后验证调整后的表现。

延伸阅读:MySQL 官方索引说明 ↗
ABOUT THIS SPACE

关于这份笔记

学习技术,不只记住命令,也试着理解它为什么这样工作。这里分享软件开发、Linux、网络与数据库的基础知识,记录从提出问题、动手验证到形成理解的过程。