背景

数据库作为项目核心组件,常见的问题分析和优化

例子

积分日志查询慢

数据密度大,遇到深翻页问题,采用返回id进行数据过滤,需要客户端配合调整。

进一步,采用推模型来同步积分日志。

用户信息查询

跨表join采用了select *,其实只需要两三个字段,覆盖索引即可。

服务处理日志写入

单条写入,采用队列缓冲,批量写入

没有选择正确的索引

强制索引

最左匹配无法生效

采用union all,避免采用union,需要建临时表去重

网络耗时

查询用户的可用积分明细,可能很多数据量

字符集不一致

导致join索引失效