适用于大批量静态分析数据的最佳存储引擎

时间:2010-08-22 22:40:34

标签: mysql nosql analytics

我正在构建一个需要存储和查询大量带时间戳数据的应用程序。具体而言,这是分析类型数据,其中特定“集合”可以包含通过共享时间戳连接在一起的多达100个单独的数据点。这些数据是静态的,因为它一旦存储就永远不会改变,但可以在从数据库中删除之前多次查询(我们目前只存储12周的数据)。

目前,我们将这些数据存储在MySQL中,每个表大约有1亿行(我们每天大约增加300万行)。在仅通过时间戳存储和查询数据时这很好,但是在使用排序执行SELECT时尤其是在尝试从表中删除旧的过时数据时,这会变得乏味。 DELETE查询使用例如WHERE timestamp< $ 12weeksago通常需要几个小时才能完成。

我们还希望将一些数据保留在12周时间之外,这会将DELETE的另一个WHERE子句添加到另一列。这会进一步减慢速度。

基于此用例,您会建议使用哪种存储引擎,同时考虑到大量的读/写和查询需求?

2 个答案:

答案 0 :(得分:0)

这完全取决于你所做的选择。如果NoSQL数据库可以做到这一点,那可能是你最好的猜测。

但是,我认为您可以通过对数据库进行分区来大大提高性能。由于它已经基于时间,您可以轻松地每天/每周/每月创建一个分区,这样您只需查询与当前查询相关的表。删除旧数据是一个简单的删除表而不是慢速删除。

答案 1 :(得分:0)

尝试Redis或MongoDB。它们都是为这种用例而设计的。