MyBatis plus -- MySQL慢查询
问题描述:MyBatis plus in() 函数入参集合为空导致全表查询。
最近在迭代的项目要增加一个新功能模块 -- 勋章系统,每个用户拥有25个勋章。
简单描述下勋章的存储结构:
勋章的存储使用了两张表:
勋章的基本信息表:
包括勋章的ID int
勋章名称 varchar
勋章图片地址 varchar
勋章的获得条件 json
用户的勋章记录表:medal_record
勋章记录ID int pri
用户ID int unique index
用户的勋章信息 json
用户的勋章信息数据结构
[
{"勋章ID":int,
"勋章名称":"",
"勋章条件标识":"sign",
"勋章目标值":int
"勋章获得进度":int
"勋章图片地址":"",
'勋章状态":"enum"
}
]
勋章的展示:
客户端要显示用户佩戴的勋章时需要从medal_record表中查询用户对应的勋章信息反序列化为勋章列表,然后根据勋章的状态筛选出用户已经佩戴的勋章并将图片地址的数组返回给前端。
String medalListStr = "[{},{}]";
List<MedalItem> list = JSONArray.parseArray(medalListStr, MedalItem.class);
List<String> medalList