mysql查询问题,如何高效处理置顶操作

表A,存放任务及所属组

idinsertTimenamegroup
11646012650任务11
21646012660任务21
31646012650任务31
41646012660任务42

表B,存放任务组及置顶优先级(越大越高)

groupIdnamepriority
1任务组a1
2任务组b2

查询逻辑如下(希望我没写出语法错误)

SELECT A.name,B.name
FROM A INNER JOIN B ON A.group=B.groupId
ORDER BY B.priority,A.insertTime
LIMIT 0,10    -- 分页查询

insertTime建了索引,只查表A其实很快。但是关联表B后就明显慢了几倍,有什么加快查询的思路吗?

我觉得麻烦的一点在于:
任务组的优先级(置顶)是可以随时改的。如果在表A加个列表示优先级,那用户每次改置顶怕是要改几万条表A数据,所以优先级放在了表B中。

阅读 2.1k
2 个回答

先把项目组优先级查出来
然后 order by field

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题