我正在尝试找到最佳解决方案,以在当前正在开发但正在运行的解决方案中从根本上替换 SQL 数据库。数据存储需要包括可以备份和/或滚入/滚出的表分区和文件组(如 IBM DB2 分区中所述:http: //www.ibm.com/developerworks/data/library/ techarticle/dm-0605ahuja2/index.html),但也允许大量行插入/更新。
SQL数据库中存储的表目前结构简单: ID long (PRIMARY KEY) TimeStamp DateTime (PRIMARY KEY) Value float Attribute int
ID 与当前数据库中的任何 ID 都没有关联,而是来自其他地方。ID 和 Timestamp 一起用作插入/更新的主键
表中的数据。目前,.NET 使用具有表值参数的存储过程,以允许将数据一次合并到 50K 行的表中。目前我在开发机器上测量了大约 10K 条目/秒,对此我很满意。但是,由于该解决方案对成本敏感,并且由于表增长时的性能要求,我需要能够进行表分区(由 TimeStamp 字段划分)并将分区划分为多个文件以简化维护/备份。此外,我需要让客户至少能够通过 ODBC 对数据执行查询(只读)。
我查看了几个 NoSQL 选项,mySQL 和 DB2(这似乎是目前最合适的)。我将不胜感激任何人对什么是最合适的可能有任何见解。当然,总是可以选择将“分区”逻辑移动到代码中,但如果可能的话,我想避免这种情况。