我有一个SQL Server数据库,其中包含一个应用程序的使用数据(来自100多个设备),收集了超过1年的数据(30GB数据库)。
将数据插入数据库不是问题,足够快(现在),并且是客户端唯一的操作。
有一个主表和一些子表,但我们可以说我可以将所有内容放在一个表中。
我需要进行统计分析,因此大多数count(*)
按日期和一列或多列进行过滤。性能变慢(用索引完成所有工作)。
迁移到MongoDB会提高速度吗?我还没有开始研究它,但我的99%的操作都是(是的,我知道不是SQL):
select count(*) from table
where date between date1 and date2 and field1 = 10 and field2 = "test"
答案 0 :(得分:3)
sql server可以轻松处理您的需求。 通过使用适当的索引和其他优化技术。 SQL SERVER可以有效地执行这些查询。对于您的用例,(date,field1,field2)
上有一个简单的索引CREATE CLUSTERED INDEX IDX_TABLE_ID ON TABLE(id)
GO
CREATE INDEX IDX_TABLE_2 ON TABLE(date,field1,field2)
GO
足以快速执行查询。
只需注意: 用于存档分析SQL Server提供数据仓库工具(SQL SERVER ANALYSIS SERVICE)。 SQL SEREVER CUBE可以非常简单地聚合和分析大型归档数据。
其他sql服务器信息:http://ms-sql-queries.blogspot.in/
答案 1 :(得分:0)
如果您未在查询中使用任何联接,则不会影响SQL Server的性能。如果您使用mongodb用于相同的目的,那么查询时间也将是sql的一个或更差的查询时间。