数据库速查
本机有
psql。生产库操作前:先备份、再改;大表 DDL 走维护窗口。
psql "postgresql://用户:密码@主机:5432/库名"psql -h 127.0.0.1 -U postgres -d mydb| 想做什么 | 命令 / SQL |
|---|---|
| 列库 | \l |
| 连某个库 | \c 库名 |
| 列表面 | \dt |
| 描述表 | \d 表名 |
| 列索引 | \di |
| 执行文件 | \i path/to/file.sql |
| 对齐好看 | \x auto |
SSH 隧道连远端:
ssh -L 5432:127.0.0.1:5432 user@serverpsql -h 127.0.0.1 -U app -d app-- 谁占用连接SELECT pid, usename, state, query_start, left(query, 80)FROM pg_stat_activityWHERE datname = current_database()ORDER BY query_start;
-- 杀会话(慎用)SELECT pg_terminate_backend(pid);
-- 表大小SELECT relname, pg_size_pretty(pg_total_relation_size(relid))FROM pg_catalog.pg_statio_user_tablesORDER BY pg_total_relation_size(relid) DESCLIMIT 20;| 想做什么 | 命令 |
|---|---|
| 逻辑备份单库 | pg_dump -Fc -f app.dump appdb |
| 纯 SQL 备份 | pg_dump appdb > app.sql |
| 恢复自定义格式 | pg_restore -d appdb app.dump |
| 恢复 SQL | psql appdb < app.sql |
| 只备份 schema | pg_dump -s appdb |
| 只备份数据 | pg_dump -a appdb |
恢复前确认连的是目标库,别冲掉生产。
索引与性能(速记)
Section titled “索引与性能(速记)”- 先
EXPLAIN (ANALYZE, BUFFERS),再加索引 - 高频等值 / 外键列值得索引;低基数列慎加
- 写多读少的表不要堆太多索引
VACUUM (VERBOSE, ANALYZE) 表;在大量更新/删除后有用
Redis(一点)
Section titled “Redis(一点)”| 想做什么 | 命令 |
|---|---|
| 连上 | redis-cli / redis-cli -u redis://… |
| 看键(小心 KEYS) | SCAN 0 MATCH prefix:* COUNT 100 |
| 类型与 TTL | TYPE key / TTL key |
| 删 | DEL key |
| 信息 | INFO memory |
缓存原则:当缓存不是真相来源;要有过期与失效策略。