相关疑难解决方法(0)

以滚动方式从MySQL中删除旧行的最佳方法是什么?

我发现自己想要在很多应用程序中滚动删除早于(x)-days的行.在高流量桌上最有效地做到这一点的最佳方法是什么?

例如,如果我有一个存储通知的表,我只想保留7天.或高分我只想保持31天.

现在我保留一行存储发布的纪元时间,并运行一个每小时运行一次的cron作业,并以如下增量删除它们:

DELETE FROM my_table WHERE time_stored < 1234567890 LIMIT 100
Run Code Online (Sandbox Code Playgroud)

我这样做直到mysql_affected_rows返回0.

我曾经一次做到这一切,但这导致应用程序中的所有内容在INSERTS堆积的情况下挂起30秒左右.添加LIMIT有助于缓解这一点,但我想知道是否有更好的方法来做到这一点.

mysql

47
推荐指数
2
解决办法
6万
查看次数

将大量有序时间序列数据存储在大型衍生品中

我试图弄清楚这些新的数据存储如bigtable,hbase和cassandra到底是什么.

我处理大量的股票市场数据,数十亿行价格/报价数据,每天可以累计达到100千兆字节(尽管这些文本文件通常压缩至少一个数量级).这个数据基本上是一些数字,两个或三个短字符串和一个时间戳(通常是毫秒级).如果我必须为每一行选择一个唯一的标识符,我将不得不选择整行(因为交换可能会在同一毫秒内为同一个符号生成多个值).

我想将这些数据映射到bigtable(我包括它的衍生物)的最简单方法是按符号名称和日期(这可能会返回一个非常大的时间序列,超过百万个数据点并非闻所未闻).通过阅读他们的描述,看起来这些系统可以使用多个密钥.我还假设十进制数不是键的好选择.

其中一些系统(例如Cassandra)声称能够进行范围查询.在给定的一天,上午11:00到下午1:30之间,我是否能够有效地查询MSFT的所有值?

如果我想搜索给定日期的所有符号,并请求价格在10美元到10.25美元之间的所有符号,那么该怎么办?所以我正在搜索这些值,并希望返回键作为结果?

如果我想得到两个系列,从另一个中减去一个,并返回两次系列及其结果,我将在自己的程序中做他的逻辑怎么办?

阅读相关论文似乎表明这些系统不适合大规模时间序列系统.但是,如果谷歌地图等系统基于它们,我认为时间序列也应该有效.例如,将时间视为x轴,将价格视为y轴,将符号视为命名位置 - 突然之间看起来像bigtable应该是时间序列的理想存储(如果整个地球可以存储,检索,放大和注释,股市数据应该是微不足道的).

有些专家可以指出我正确的方向或澄清任何误解.

谢谢

finance hbase bigtable time-series cassandra

38
推荐指数
3
解决办法
2万
查看次数

标签 统计

bigtable ×1

cassandra ×1

finance ×1

hbase ×1

mysql ×1

time-series ×1