在mysql中,连接238个表(每个表都包含一个时间序列中的变量)的最有效方法是什么。客户机为我提供了一个csv文件,每个时间序列包含大约10万行。我已经在mysql中加载了数据,但是直到现在还没有索引。
我试过加入61个表(mysql中的最大数量),但那是一个巨大的失败。6天后,一次断电结束了它,但直到那时我才有结果。我也尝试过更新,但也失败了
谢谢你的建议

最佳答案

在设计良好的数据库中,拥有多个相同格式的表通常是一个坏主意。您只需将所有数据放在一个表中,并将其用于查询。您可以使用insertcreate table as语句执行此操作:

create table AllSeries as
    select 'series001' as SeriesName, s.* from series1 s union all
    select 'series002' as SeriesName, s.* from series2 s union all
    . . .
    select 'series0060' as SeriesName, s.* from series1 s;

insert into AllSeries
    select 'series061' as SeriesName, s.* from series1 s union all
    select 'series062' as SeriesName, s.* from series2 s union all
    . . .
    select 'series119' as SeriesName, s.* from series1 s;

/* and so on */

然后,应该向表中添加索引以提高性能,可能类似于:
create index idx_AllSeries_SeriesName_Time on AllSeries(SeriesName, Time);

您得到的查询应该更容易编写和执行。

10-08 02:21