gpt4 book ai didi

mysql - 同时从多个mySQL表查询

转载 作者:行者123 更新时间:2023-11-29 13:16:35 25 4
gpt4 key购买 nike

我想查询一些数据,但是数据根据收集数据的月份(例如201301、201302)分布到不同的表中。我可以尝试通过对我需要的所有表进行并集来查询表。这就是我到目前为止所拥有的..

select * from table_2013_01
where user_id = 39858
UNION ALL
select * from table_2013_02
where user_id = 39858
UNION ALL
.
.
.
select * from table_2014_01
where user_id= 39858
order by date asc

我的问题是:

  1. 有没有比这更好的方法,因为我可能想检索 2010 年以后的数据?这意味着一次性将所有 36 个表合并起来?
  2. 这是否会导致性能问题,因为这是一个实时服务器,我无法进行超过 2 分钟的查询,否则它将向 DBA 发送警报。

注意:我只有数据库的读取权限。我什至无法创建临时表。

最佳答案

如果你可以在user_id上创建/放置索引(看起来你在where子句中没有任何其他参数),那么检索会更快,然后你就可以这样做

    select * from (
select * from table_2013_01
where user_id = 39858
UNION ALL
select * from table_2013_02
where user_id = 39858
UNION ALL
.
.
.
select * from table_2014_01
where user_id= 39858
) t order by date asc;

如果您有权创建过程,那么您无需手动编写这些查询,您可以创建动态 SQL(字符串如 *final_sql*)并可以运行它:

PREPARE stmt FROM @final_sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

关于mysql - 同时从多个mySQL表查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21377828/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com