在mysql中加入数百个表

时间:2014-07-25 18:44:38

标签: mysql

在mysql中连接238个表的最高效的方法是什么,每个表包含来自时间序列的变量。客户端每次为我提供一个包含大约10万行的csv文件。我已经在mysql中加载了数据,但到目前为止还没有索引。

我曾尝试加入61个表(mysql中的最大数量)但这是一个史诗般的失败。 6天后,电力中断结束了,但直到我没有结果。我也尝试过更新,但这也失败了

感谢您的建议

1 个答案:

答案 0 :(得分:3)

在设计良好的数据库中,拥有相同格式的多个表通常是一个坏主意。您应该将所有数据放在一个表中,并将其用于查询。您可以使用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);

您生成的查询应该更容易编写并且表现更好。