mysql优化,视图union查询很慢。高手请入!

lijiawenbb 2014-11-28 12:09:22
CREATE VIEW push_log AS
SELECT title, id, classid, titlepic FROM push_log_0 BETWEEN (UNIX_TIMESTAMP(NOW()) - ((3600 * 24) * 30)) AND UNIX_TIMESTAMP(NOW()))
UNION
SELECT title, id, classid, titlepic FROM push_log_1 BETWEEN (UNIX_TIMESTAMP(NOW()) - ((3600 * 24) * 30)) AND UNIX_TIMESTAMP(NOW()))
UNION
SELECT title, id, classid, titlepic FROM push_log_2 BETWEEN (UNIX_TIMESTAMP(NOW()) - ((3600 * 24) * 30)) AND UNIX_TIMESTAMP(NOW()))
UNION
SELECT title, id, classid, titlepic FROM push_log_3 BETWEEN (UNIX_TIMESTAMP(NOW()) - ((3600 * 24) * 30)) AND UNIX_TIMESTAMP(NOW()))

UNION ..........

像这样UNION连接后建立的mysql 视图 结果导致查询很慢 。, 请大家给个优化方案。 谢谢了。
...全文
1493 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Inter_Ares 2019-01-02
  • 打赏
  • 举报
回复
你把where条件,改成定值,先不要用函数,试一下,是否有变快?
邹小青 2018-12-27
  • 打赏
  • 举报
回复
《如何协助MySQL实现窗口函数》这篇文章介绍得方法,可以实现union查询,并且性能问题解决的不错
阿强° 2018-12-27
  • 打赏
  • 举报
回复
我直接换or ,in ,and做条件了,union慢的一批
ACMAIN_CHM 2014-11-29
  • 打赏
  • 举报
回复
贴出 explain select ... 以供分析。
sych888 2014-11-28
  • 打赏
  • 举报
回复
union 会用到排序,进行去重 看一下查询计划,分析一下是否可以走索引
bw555 2014-11-28
  • 打赏
  • 举报
回复
使用union all连接,union连接,连接之后还会执行去重操作的
lijiawenbb 2014-11-28
  • 打赏
  • 举报
回复
1楼的大神给的回复还算可以一点点, 优化了2秒 。 但是现在查询速度到了4-5秒钟, 速度还是不行,大家还有没有一些其他的方案。

56,678

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧