mysql - 选择在联合中花费大量时间按日期顺序排序?
问题描述
我有一个选择来获取警报。
select 'comments' prefix, c.foto, c.data as data, c.user, concat(k.user, ' comments your post') as logs from comentarios c
inner join posts p on c.foto = p.id
inner join cadastro k on c.user = k.id
where p.user = 1 and p.user <> c.user and c.delete = 0
union all
select 'like' prefix, l.post, l.data as data, l.user, concat(k.user, ' liked your post') as logs from likes l
inner join posts p on l.post = p.id
inner join cadastro k on l.user = k.id
where p.user = 1 and l.user <> p.user
order by data desc
limit 5
问题是如果我以这种方式运行 select 将需要 2.4871 秒。
如果我删除select 'like'...
= 0.0024,但如果我将这个选择分开运行,它只需要 0.010,而没有按数据 desc 的顺序。
任何想法为什么?我不知道问题是联合还是顺序……它们都被很好地索引了。
解决方案
推荐阅读
- python - Dash - 具有多个可能仪表板的多用户
- python - 稀疏线性方法 (SLIM) 包的替代方案
- c++ - 在 C++ 中转换错误
- python-3.x - 检查属性有效值
- angular - 功能不等待 Firebase 写入完成
- java - Webclient 与简单 Flux.just 的 Flux 行为不同
- postgresql - 是否可以在冲突时访问当前列数据
- python - Selenium 测试以随机顺序运行
- android - 如何将 Android 模块库(带有 SO 库)包含到另一个 Android 模块库中
- spring - 拥有自定义错误响应是否意味着您必须捕获任何异常才能保持一致?