我试图比较并查看我的SQL Server数据库是否可以迁移到MongoDB以获得更好的性能。通过列的大量插入和更新,数据库几乎没有架构。表格是这样的(主键为Product_ID)
ProductID Part1 Part2 Part3 ...依此类推,其中包含大量列数达到70
到目前为止,我没有发现MongoDB有任何显着的性能提升。两者的执行速度几乎相同(有时SQL Server会跳转并执行更多更新)。我正在通过ProductID正确索引MongoDB数据库,这是我在更新时看到的那个。
这种类型的数据库不适合利用SQL Server的MongoDB性能吗?
欢迎任何意见或建议!
此致 Lalith
答案 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个。