数据库和缓存工具笔记适合做成“入口页”:不追求把每个技术讲完,而是记录常用命令、配置习惯、排障方向和后续深入链接。
SQLite 适合轻量本地数据
SQLite 适合:
- 本地小工具。
- 临时数据分析。
- 单机缓存。
- 桌面应用。
- 测试样例。
它不需要单独服务进程,文件就是数据库。缺点是并发写入能力有限,不适合高并发服务端主库。
MySQL 新库默认配置
新建 MySQL 数据库时,建议默认使用:
create database demo
default character set utf8mb4
default collate utf8mb4_general_ci;
utf8mb4 能正确支持 emoji 和更多 Unicode 字符。排序规则要结合业务选择,普通中文内容站和工具库一般先统一即可。
授权语句要谨慎
MySQL 授权示例经常长这样:
grant all privileges on *.* to 'user'@'host' identified by 'password' with grant option;
flush privileges;
公开文档里不要保留真实账号、真实密码和真实来源 IP。实际使用时也不建议随便给 *.* 和 with grant option,应该按库、表、权限最小化。
MyBatis 分页要看 SQL
MyBatis-Plus 或自定义分页都要关注最终 SQL:
- 是否真的带了 limit。
- count SQL 是否过重。
- JOIN 是否可以裁剪。
- 排序字段是否有索引。
- 深分页是否需要改游标分页。
分页插件只是生成 SQL,性能仍由 SQL 本身决定。
Redis 工具要区分数据结构
Redis 常见选择:
- String:计数、简单缓存、序列化对象。
- Hash:对象字段缓存,适合局部更新。
- List:队列和时间线。
- Set:去重集合。
- ZSet:排行榜和带分数排序。
使用 Java 工具类时,不要把所有对象都直接 JSON 到 String。先看访问模式,再选结构。
二级缓存要谨慎
二级缓存能减少数据库压力,但也会引入一致性问题。判断时看:
- 数据是否频繁变更。
- 是否允许短暂不一致。
- 是否有失效策略。
- 是否能按 key 精确删除。
- 是否有缓存穿透和雪崩保护。
缓存不是越多越好,关键是命中率和一致性边界。
实用结论
数据库和缓存工具笔记要服务日常排障:SQLite 适合本地,MySQL 注意字符集和授权,MyBatis 分页看最终 SQL,Redis 先选对数据结构。工具只是入口,真正稳定靠配置边界、权限控制和可观察性。
正文完




