-1

我被问到了,仍然无言以对。

假设您有两个选项来实现某个应用程序的后端。

一种是使用动态数组,每次你想修改/读取它时,你将它加载到 RAM 并做任何你想做的事情,然后在完成后将它存储回来。

另一个是使用 SQL。

除了性能问题(SQL 更快,如果 DB 比 RAM 大,您无法将其加载到内存中),还有其他原因偏爱 SQL 吗?

4

3 回答 3

3

交易...

可扩展性

并发

理智!

谁提议在应用程序中使用向量,给他们一些积木,然后把它们放在一个没有尖角的房间里......

于 2013-09-11T10:56:55.440 回答
0

如果要存储更多数据,在大多数情况下,数据库是更好的选择。

数据库具有更好的性能,因为它们针对以下操作进行了优化:

  • 仅加载部分数据
  • ...
于 2013-09-11T10:57:46.123 回答
0

像大多数设计问题一样,答案取决于上下文。这些数据有多大,使用频率如何,您在哪个平台上运行等等等等。

例如,.NET 平台本质上使用一个数组(我知道还有一些附加功能)来存储配置信息。在程序开始时,此信息从磁盘加载,然后每当您需要检查配置参数时,它会查看阵列以找到它。

还有一些附加功能,如缓存控制等——但现在让我们忽略它们。

这种结构是有道理的。该信息在程序启动时被读取一次,不被程序修改,也不需要回写到存储介质中。

因此,您问题的答案实际上取决于您对数据的处理方式。正如 Martin 所指出的,除了您提到的之外,SQL 还为应用程序提供了许多重要功能,包括事务控制、并发、结构和扩展。

于 2013-09-11T11:40:03.070 回答