我被问到了,仍然无言以对。
假设您有两个选项来实现某个应用程序的后端。
一种是使用动态数组,每次你想修改/读取它时,你将它加载到 RAM 并做任何你想做的事情,然后在完成后将它存储回来。
另一个是使用 SQL。
除了性能问题(SQL 更快,如果 DB 比 RAM 大,您无法将其加载到内存中),还有其他原因偏爱 SQL 吗?
交易...
可扩展性
并发
理智!
谁提议在应用程序中使用向量,给他们一些积木,然后把它们放在一个没有尖角的房间里......
如果要存储更多数据,在大多数情况下,数据库是更好的选择。
数据库具有更好的性能,因为它们针对以下操作进行了优化:
像大多数设计问题一样,答案取决于上下文。这些数据有多大,使用频率如何,您在哪个平台上运行等等等等。
例如,.NET 平台本质上使用一个数组(我知道还有一些附加功能)来存储配置信息。在程序开始时,此信息从磁盘加载,然后每当您需要检查配置参数时,它会查看阵列以找到它。
还有一些附加功能,如缓存控制等——但现在让我们忽略它们。
这种结构是有道理的。该信息在程序启动时被读取一次,不被程序修改,也不需要回写到存储介质中。
因此,您问题的答案实际上取决于您对数据的处理方式。正如 Martin 所指出的,除了您提到的之外,SQL 还为应用程序提供了许多重要功能,包括事务控制、并发、结构和扩展。