我正在做一个C++的信息检索项目。使用数据库存储术语有什么好处,而不是将其存储在数据结构(如矢量)中?更一般地说什么时候使用数据库而不是数据结构是一个好主意?什么时候使用数据库是个好主意
回答
(肖恩):每当你想保持数据超出了程序的实例的长度。 (持续时间)
(MichaelKjörling):无论何时您想要程序的许多实例,无论是在同一台计算机还是在许多计算机上,如在网络或网络中,访问和操作(共享)数据。 (跨越网络空间的持久性)
每当你有非常大量的数据不适合内存。当你有非常复杂的数据结构,并且你更喜欢不重写代码来操作它们,比如搜索,更新它们,当db程序员已经写了这样的代码,并且可能比你(或者我)的代码快得多的时候,会写。
每当你想保持超出程序实例长度的数据?
为了澄清,我的意思是我的意思是使用数据库,而不是使用fstream将其存储在文件上。 – 2011-03-11 13:05:41
@Herr:这是一个(相关但是)不同的问题。 – 2011-03-11 13:09:22
除了Shawn指出持久性:每当你想让程序的多个实例能够轻松共享数据?
内存中的数据结构很好,但它们不是持久性的替代品。
这真的取决于范围。例如,如果您要让多个应用程序访问数据,那么数据库会更好,因为您不必担心文件锁定等。另外,如果您需要执行诸如加入其他数据,排序等等,除非你喜欢实现Quicksort。
- 1. 什么时候是Malloc的好主意?
- 2. 什么时候使用CSS显示属性是个好主意?
- 3. 什么时候使用螺旋锁是一个好主意?
- 4. 什么时候正在使用__call__一个好主意?
- 5. 什么时候清理解决方案是个好主意?
- 6. 什么时候关闭atime和diratime是个好主意?
- 7. 什么时候通过引用传递不是一个好主意?
- 8. 什么时候是链表最好的数据结构使用
- 9. 什么时候Rails Eager默认加载所有关联是一个好主意?
- 10. 什么时候不使用RelativeLayout更好?
- 11. 什么时候使用临时数据库?
- 12. 使用NHibernate访问数据库时最好的businessmodel是什么?
- 13. 将夏威夷用作数据库时区是个好主意吗?
- 14. 单身REST数据库资源是一个好主意吗?
- 15. 数据库列中的CSV - 不是一个好主意吗?
- 16. 拆分数据库Web应用程序 - 好主意还是坏主意?
- 17. 使用“Control.CheckForIllegalCrossThreadCalls = false”是个好主意
- 18. 使用OData是个好主意吗?
- 19. 使用boost :: any是个好主意吗?
- 20. 什么时候值得使用数据库?
- 21. 什么时候应该使用Greenplum数据库与HAWQ?
- 22. 什么时候应该使用数据库同义词?
- 23. 什么时候应该使用数据库?
- 24. 什么时候应该使用对象数据库?
- 25. 它是建立一个重数据库(数据仓库)活动的网站使用GWT + AppEngine上一个好主意,好主意?
- 26. 什么时候比数组好?
- 27. 什么时候使用size_t作为模板函数的参数是一个坏主意?
- 28. 什么是'unsigned'意思是什么时候它本身?
- 29. 什么时候应该使用AWS,什么时候不使用
- 30. intn_t什么时候使用它,什么时候不使用
感谢大家的回答。 – 2011-03-11 13:17:22