记录下工作中遇到的一些坑

最近测试提了一些bug,是关于生成的数据的顺序的,第一时间就联想到是sql的排序出问题。

迅速定位到那条sql,发现sql并没有什么异样。

具体情况:一共查到32条数据,pagesize设为20,第一页和第二页出现了相同的数据,这就很诡异了,

打开sql工具查询也是一样的结果。最后分析数据发现是排序条件导致的。

sql:

SELECT
id AS favorite_id ,create_time
FROM favorite_list_xx
WHERE user_id=xxxx
AND is_delete=0 AND favorite_type IN (1) AND region="CN"
ORDER BY create_time DESC limit 20,20

问题就出在这个时间排序,

在同样的字段值相同的时候,会出现同值数据排序多次不一样的情况;
在分页的时候会出现问题;
在limit取的地方会出现严重问题。

因此在排序里面多加了一个条件排序,唯一id排序,优先时间再id。很有效,虽然最后发现

bug是因为我插入时间的代码写错了,不过因祸得福,又踩了一个坑。很棒!

 

posted @ 2021-12-27 17:33  火星包up  阅读(32)  评论(0编辑  收藏  举报