关注
续上一条
Redis刷新token保证用户无感:
1. 使用access_token和refresh_token
2. 在access_token即将过期前自动刷新
3. 用户活跃时延长token有效期
4. 客户端在后台异步刷新token
5. token过期后短时间内仍可使用,同时刷新
点赞排行实现及数据持久化:
1. 使用ZSET存储,score为点赞数
2. 定期将热门数据持久化到MySQL
3. 热数据保存在Redis,冷数据存入MySQL
4. 设置定时任务每天/周从MySQL加载基础数据到Redis
5. 只更新有变化的数据,而非全量刷新
乐观锁实现:
1. 表中增加version字段,更新时检查版本
2. 条件更新 UPDATE table SET data=?, version=version+1 WHERE id=? AND version=?
SQL优化问题
多表连接优化:
1. 减少连接表数量
2. 索引优化
3. 小表驱动大表
4. 尽量使用内连接而非外连接
5. 将过滤条件尽量下推到基表
6. 避免笛卡尔积
多表连接分页查询优化:
1. 先获取分页ID,再关联查询详细数据
2. 先对主表分页,再与其他表连接
3. 尽量使用索引覆盖避免回表
4. 将WHERE条件提前执行
5. 使用临时表存储中间结果
多表连接索引创建及联合索引作用:
1. 在所有JOIN条件字段上创建索引
2. WHERE条件字段创建索引
3. ORDER BY字段创建索引
4. 联合索引作用最左前缀匹配 索引覆盖 减少回表次数 提高连接效率
SQL执行顺序: FROM > JOIN > WHERE > GROUP BY > HAVING > SELECT > DISTINCT > ORDER BY > LIMIT
MySQL提高扫描效率的方法:
1. B+树索引减少磁盘IO次数
2. 根据成本选择最优执行计划
3. InnoDB buffer pool缓存热数据
4. 提前读取可能需要的数据页
查看原帖
10 3
相关推荐

点赞 评论 收藏
分享

点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 滴滴求职进展汇总 #
164074次浏览 1632人参与
# 找工作有哪些冷知识 #
2784次浏览 61人参与
# 美团求职进展汇总 #
1894720次浏览 17609人参与
# 实习期间如何提升留用概率? #
13721次浏览 226人参与
# 应届生简历当中,HR最关注哪些? #
21864次浏览 196人参与
# 24届软件开发秋招薪资爆料 #
326037次浏览 1200人参与
# 机械人,说说你的烦心事 #
58205次浏览 794人参与
# 通信硬件公司爆料 #
130543次浏览 511人参与
# 通信/硬件求职避坑tips #
47236次浏览 422人参与
# 毕业季,你想好怎么跟生活对线了吗? #
184467次浏览 3426人参与
# 大学最后一个寒假,我想…… #
25963次浏览 237人参与
# Offer比较,你最看重什么? #
139525次浏览 882人参与
# 扒一扒那些奇葩实习经历 #
19914次浏览 592人参与
# 牛友投递互助,不漏校招机会 #
261908次浏览 3578人参与
# 拼多多工作体验 #
13560次浏览 135人参与
# 面试时被问的最奇葩的问题 #
17776次浏览 100人参与
# 你的秋招简历被谁挂了? #
245999次浏览 2696人参与
# 实习必须要去大厂吗? #
82350次浏览 1234人参与
# 机械人避雷的岗位/公司 #
8901次浏览 49人参与
# 应届生应该先就业还是先择业 #
89535次浏览 546人参与