首页 » 编程笔记 » mysql » 正文

记录一个mysql优化的小问题

目前在做消息中心项目的时候,遇到一个问题,一个用户有19w的消息,前端通过limit 分页竟然获取不到数据

这个很奇怪,排查代码发现,原来在消息list的接口里面有一个操作阻塞了接口的数据吐出,每次取list都会执行:

update  table  set read_status=2 where user_id=xxx

这个用户有19w的数据,相当于全表扫描了,

解决办法是:

加一个and条件,减小数据集的大小。

update  table  set  read_status=2 where user_id=xxx  and read_status=1

这个read_status 比较容易让人忽略,加上之后数据正常吐出了

问题解决

mark下