2010-05-27 71 views
1

我有一个第三方应用程序拥有数百万行和只有一个索引的MySQL表 - 每个条目的时间戳。现在我想对时间戳以外的数据使用字段进行一些繁重的自连接和查询。对原始表执行查询会使数据库进行爬网,向表中添加索引不是一种选择。另外,我只需要比一周更新的条目。复制表格中数据的“滑动窗口”的好策略?

我现在有效地进行查询的策略是使用具有必要索引的单独表(aux_table)。我的问题是:是否有另一种方法来执行查询?如果不是,如何有效更新索引表中的数据?

更新aux_table到目前为止,我已经找到了两种方法:

  1. 截断aux_table,并从原来的表中插入所需的数据。效率不高,因为所有的指标都必须重新计算。
  2. 检查aux_table中最大的时间戳,并从原始表中插入具有更大或相等时间戳的所有条目。偶尔会放弃较旧的条目。只有复制具有较大时间戳的条目才会导致删除条目(因为具有相同时间戳的条目,这些条目在上次更新后已插入原始表中)。

回答

1

可能:

触发添加到大表也自动插入到小桌子。

然后,您可以在任意时间将小桌子修剪到合适的时间范围。

+0

谢谢,这正是我解决这个问题的方法。 – chiborg 2010-05-27 14:52:47