RSS
菜单
社区成员个人主页
阿成员
DEV CN / 成员主页

阿青 · 社区话题账号

查看阿青 · 社区话题账号发布的技术文章、关注圈子与公开讨论。

0技术文章4关注圈子459圈内发布1关注者
COMMUNITY POSTS

交流圈发布内容

作者在不同技术圈子中的观点与讨论

1
# MySQL

MySQL 为什么要分库分表?什么情况下才需要?

单库瓶颈:① 容量:数据量巨大(单表千万~亿级、库几十 TB)存储/备份慢;② 并发:单库连接数/IO/CPU 打满,读写争抢;③ 单表过大:索引深度、扫描成本高。分库分表时机(先做其他优化再考虑):① 单表数据量过大且无明显缓解手段(通常建议提前规划,如预估单表 > 2000 万-5000 万行);② 写并发高、单库写成为瓶颈;③ 归档无法解决容量增长。方案:垂直拆分(库按业务模块拆、表按字段拆)→ 水平拆分(按分片键把数据分布到多表…

2
# MySQL

MySQL 深分页和 ORDER BY 排序怎么优化?

深分页:LIMIT offset, n 大 offset 需扫描大量行——① 键集/游标分页:WHERE id > last_id ORDER BY id LIMIT 20(走索引);② 延迟关联:先子查询取主键(覆盖索引)再 JOIN 原表取全列;③ 限制最大页数(业务约束);④ 数据归档减少总量。ORDER BY 排序优化:① 排序列建索引(联合索引按排序方向建,避免 filesort);② 减少排序集:WHERE 提前过滤、只取需…

3
# MySQL

MySQL 热点数据怎么优化?为什么加缓存?

热点数据(高并发读同一条/同一批数据)打 DB 的问题:连接打满、Buffer Pool 命中后仍是单点。优化:① Redis 缓存(Cache Aside):读先查缓存,miss 回源 DB 并回填;写先更新 DB 再删缓存;② 本地缓存(进程内,如 Caffeine):进一步减 Redis 压力(注意一致性);③ 热点 key 优化:缓存多副本(key 加后缀分散)、逻辑过期;④ 防击穿:热点 key 加锁重建(互斥锁);⑤ 防雪崩…

4
# MySQL

MySQL 大表优化有哪些手段?

① 索引优化:合理索引 + 覆盖索引(最常见收益);② 只查需要的列(避免 SELECT *)、需要字段;③ 分区表:按时间/范围分区(查询裁剪分区,注意分区数量与运维);④ 归档:历史数据迁冷库/归档表(保留热数据);⑤ 分库分表:数据量过亿/写入大时水平拆分(见分库分表章节);⑥ 读写分离:读扩展;⑦ 压缩:页压缩/透明压缩(5.7+);⑧ 参数:增大 Buffer Pool;⑨ 工具:pt-archiver 安全归档;⑩ 定期 o…

7
# MySQL

MySQL 索引优化有哪些实战案例?

① 慢查询全表扫描 → 建索引:WHERE/ORDER BY/JOIN 列建索引(区分度高的放前);② 深分页优化:延迟关联(先索引取 id 再 join);③ 覆盖索引:高频查询 SELECT 列都进联合索引,Extra 显示 Using index;④ 避免索引失效:不用函数/隐式转换、LIKE 前缀通配、OR 拆 UNION;⑤ 排序优化:ORDER BY 列加索引(避免 filesort)、联合索引按排序顺序建;⑥ 去重/分组:…

9
# MySQL

MySQL 性能优化从哪入手?优化思路?

思路(自顶向下):① 架构层:读写分离、分库分表、缓存(Redis)、异步化——先看是否架构问题;② 参数层:Buffer Pool、连接数、刷盘策略等实例配置;③ SQL 层(最常见收益):慢查询日志 → EXPLAIN → 索引优化、SQL 改写;④ 表设计层:字段类型、范式/反范式、分表;⑤ 硬件层:SSD、内存扩容。检查顺序建议:先看慢查询 TOP SQL,再查连接/线程状态(show processlist)、锁等待(inno…

10
# MySQL

MySQL 怎么做容灾和备份演练?

容灾:① 异地备份:备份文件/binlog 异地存储(OSS/S3)或异地从库;② 备份策略:全备(每周)+ 增量(每天 binlog);③ RPO/RTO 目标明确(如 RPO≤5min、RTO≤1h)。备份演练(必须定期):① 从备份恢复一个临时实例(时间点恢复:全备 + binlog 回放到指定时间);② 验证数据完整性:行数、抽样校验、业务冒烟(应用连临时库跑通核心流程);③ 演练记录与改进(耗时、失败点);④ 验证备份文件本身…