我有一堆事件需要首先按位置组织,然后按时间组织,然后是剩余属性(持续时间、成本、描述)的任何组织。问题是有数百万个事件,所以在查询时,我们只需要检索一小部分,它应该是有序的,最好是通过第三个索引(成本或持续时间)。
最终,使用此数据库的应用程序需要超快速地获取数据,并且将执行数千次查询。不幸的是,我们目前绑定到传统的硬盘驱动器,因此数据需要按顺序存储。它不会经常更新(每天几百次写入,而每天读取数百万次)。
我们已经尝试过 MySQL,但即使有索引,定位我们需要的数据部分也需要 200 毫秒,这可能是因为我们的硬盘驱动器必须进行大量搜索,即使它知道所有数据在哪里。
我们已经研究过诸如键值存储(Redis、CouchDB)之类的 NoSQL 解决方案,但 Redis 不进行嵌套,并且 CouchDB 不允许“有序集”,因为它存储在 JSON 中。
有哪些解决方案可以帮助我们根据两个(或更多)指标进行存储?如果它与 Python 有一个很好的界面,那就加分!