一般问题
使用数据结构的算法与使用数据库的算法之间有什么区别?
一些背景
这个问题困扰了我一段时间,而我却无法给出令人信服的答案。
目前,我正在努力加深对当然会大量涉及数据结构的算法的理解。这些是基本结构,例如袋,队列,堆栈,优先级队列和堆。
我还每天使用数据库来存储最终用户已处理和提交或程序处理过的数据。我通过DAL检索和提交数据,该DAL具有自己的数据结构,该结构是根据数据库中的表生成的。
当我可以选择使用数据库对数据进行排序以按升序/降序将其发送回给我或检索并将数据加载到我的逻辑中,在优先级队列中处理此数据并进行堆排序时,我的问题就来了所有的。或者另一种方法是使用数据库搜索记录,而不是加载记录的子集并使用诸如二进制搜索之类的方法来查找我感兴趣的一个或多个记录。
在我看来,由于通信成本很高,因此在发送数据库端之前,我将尝试在数据库端进行尽可能多的操作。这也使我想知道您何时使用严格在自己的逻辑内定义的算法和数据结构,而不是处理数据库而不是数据库的数据?
所以这是问题...
问题
- 数据结构和数据库之间有什么区别?
- 我们什么时候使用的算法仅使用您自己的逻辑而不是数据库逻辑定义的数据结构?
- @Harvey发表:什么时候数据库中的方法变得比您自己的逻辑中的方法效率低?
- @mirculixx帖子:什么使方法有效?
- @Harvey帖子:处理具有数据结构的数据比在数据库中处理数据更快?
澄清说明
- @Grant帖子:我通常使用的数据库是关系数据库,这些问题来自于它们的使用。但是,我确实认为这些问题适用于任何持久性框架(当我说框架时,我的意思是最一般的意义)。
我知道没有特定上下文的答案很难。我正在寻找有想法的食物,建议或讨论要点,将不胜感激!