我们有一个mysql跟踪数据库,有~100M行.我们通常会针对特定操作,独特访问等逐日运行查询.问题是由于索引的相互作用,查询生成月度报告的速度变慢(我们对日期进行范围扫描,然后基于多个查询其他领域.)
为了提高性能,我们已根据日期切换到工会,以避免范围扫描,性能更好.因此提出了这样的想法:或许我们应该每天用不同的表格每天分片.优点似乎是:
快速插入 - 每天桌子是新的/小的所以它总是很快.
删除旧数据很简单(而不是从100M行表中删除5M行,我们可以删除一个表)
我们当前的方法无论如何都在做工会 - 所以我们只是在一个表中合并不同的表而不是不同的值.
有没有人听说过或试过这种方法?有任何可预见的问题吗?
注意:我们正在考虑其他noSQL方法 - 但是如果我们决定继续使用MySQL,我们想知道这是否是一种有效的方法(所以请不要建议"尝试XYZ noSQL DB").另外,我知道我们可以得到一台更好的机器,而且在数据集的范围内,这并不是那么大 - 但我们不想在较大的机器上浪费钱,如果一个较小的机器可以工作而没有太多额外的工作.