关于优化表结构的建议

时间:2014-10-07 07:28:32

标签: mysql database

我的表格有5列:Date, Name, X, Y, Z

每个日期有~10个名字。对于每个名称,大约有100万 - 500万条记录。

查询总是如下所示:

Select sum(Z) from TABLENAME where Name='somename' AND Date between 'somedate' and 'otherdate' group by X,Y

对于这个少量的名字,我只是在日期上对表格进行了分区;忽略扫描我们实际上不需要的日期分区中的大量记录的额外费用(因为查询始终为1 Name,但是多次(最多30天)< / p>

现在我需要将其缩放到~600 Name s ,显然继续使用当前模型是不可行的。

我的第一直觉是每个Name中每个Date的SUBPARTITION。这应该可以解决规模问题,因为对于BETWEEN子句中的任何日期,MySQL会将其缩小到每个日期分区的单个子分区。

这是一个很好的解决方案吗?我能做些什么更好吗?因为以自动方式创建这种结构会很痛苦;因为我每天都要加载数据,可能还有新的Name。因此,我必须反省我正在加载的CSV文件,为每个Name预先创建子分区,然后启动LOAD DATA INFILE

0 个答案:

没有答案