SQL Server和MongoDB比较?

时间:2010-12-16 20:23:53

标签: sql-server performance mongodb

我试图比较并查看我的SQL Server数据库是否可以迁移到MongoDB以获得更好的性能。通过列的大量插入和更新,数据库几乎没有架构。表格是这样的(主键为Product_ID)

ProductID Part1 Part2 Part3 ...依此类推,其中包含大量列数达到70

到目前为止,我没有发现MongoDB有任何显着的性能提升。两者的执行速度几乎相同(有时SQL Server会跳转并执行更多更新)。我正在通过ProductID正确索引MongoDB数据库,这是我在更新时看到的那个。

这种类型的数据库不适合利用SQL Server的MongoDB性能吗?

欢迎任何意见或建议!

此致 Lalith

2 个答案:

答案 0 :(得分:3)

好的,这里有很多潜在的问题。

  

我正在通过ProductID正确索引MongoDB数据库,这是我在更新时看到的那个。

首先要注意的是,Mongo使用_id字段作为内部ID。换句话说,Mongo自动具有自动增量ID(类似于GUID,但更小)。 _id字段自动获取索引,因此如果您在ProductID上编制索引,则可能有两个索引,其中只有一个是必需的。

如果您使用的是NoRM驱动程序,请查看“制作自己的ID”的使用模式。

  

通过列的大量插入和更新,数据库几乎没有架构。表是这样的...... ProductID Part1 Part2 Part3

“部件”的概念应该快速执行,并且需要比SQL服务器更小的占用空间。请注意,每个文档都存储字段名称和值。因此,如果您的字段名称为p1而不是Part1,则您将使用更少的空间并在RAM中保留更多记录。

  

到目前为止,我没有发现使用MongoDB有任何显着的性能提升......

这是您必须详细了解测试方法的地方。有多少文件。总空间是多少,机器上有多少RAM,你在测试等等?

如果没有更多细节,根本无法提供具体指导。

答案 1 :(得分:2)

通常的做法是在MongoDb中使用“大”对象。需要拒绝使用任何连接。 例如:使用已有自订单列表等的UserDocument等。 我有从SQl迁移到MongoDb的经验。我多次改进我的系统。 在SQL Server中,我们有超过100个表,现在在mongo中我不超过20个。

相关问题