我正在设计一个可以接收大量记录的系统。
每秒在数据库中可以执行的插入次数是否有固定限制?
我们通常使用 MS SQL 服务器,Oracle 更好吗?在 No-SQL 云解决方案上是否有可能获得更好的性能?
答案1
我不知道有哪个数据库系统对每秒的操作数有限制,如果我发现有这样的系统,我会铁青。您唯一的限制因素应该是您的操作系统和硬件所施加的实际限制,特别是磁盘吞吐量。
您的问题(哪个数据库“更好”)的其余部分取决于您的实现和要求。如果您只是将数据转储到存储桶中,那么 NoSQL 解决方案如下MongoDB可能是合适的,而且它们的性能可能相当令人印象深刻。如果您的数据是高度关系型的,那么基于 SQL 的 RDBMS 系统是更好的选择。
对于任何基于 SQL 的 RDBMS,您都应该花费一些时间来调整系统以获得最佳性能 - 您的数据库供应商可能会有大量关于此主题的文档,并且最佳调整的系统与刚刚在硬件上投入的系统之间的差异可能是巨大的。
答案2
当我寻找为什么我会在自己的一些性能测试中看到一些有趣的结果时,我偶然发现了这篇文章。
我在 postgres 上进行了测试,看看如何通过将插入组合在一起来提高性能。例如,我不再一次执行 1 个插入,而是将多个插入插入到一个大型 SQL 字符串中,然后运行该 SQL。
我知道,在测试中,我把数据连接得越紧密,性能就越好,因为与实际数据相比,开销开始最小化。我还认为,由于在如此长的字符串中出现单个位错误时必须重新传输,因此性能会在某个时候开始下降。
我没有想到我的实验结果。我不确定如何解释这些数据,所以如果有人对此有更多了解,也许他们可以尝试解释一下。