今天考了个题,用Java或者C++从内存,文件,数据库中读取一个字符串"abcde",速度如何排序,为什么。
我是回答的内存>文件>数据库
内存排第一应该没什么好疑问的。是从文件中读取数度快些还是数据库中快些呢?
因为我觉得数据库也是个软件系统,也是安装在硬盘上的,是用比较复杂的数据结构存储的,当读取简单数据时速度可能会更慢一些。。
不知道这个回答对不对,请各位点拨一下。。
------解决方案--------------------
问题从何时算开始。
任何一个数据库,你用程序获得连接的时间足够读100个"abcde"了。
------解决方案--------------------
个人意见:
速度的快到慢:内存>数据库>文件。
这样的结果,基于以下的前提:内存,就是本地机器的内存;数据库是本地的数据库,而且你在读取数据库的时候使用的链接,是从现有的数据库连接池中取到的,不需要你再次创建到数据库的链接;文件是你本地的文件。
分析:内存读取速度最快,毫无疑问。问题在于数据库还是文件快,对么?
先来说数据库的优势:可以对经常搜索的列进行索引,加快搜索速度。即使你不添加索引,数据库也内建了加快搜索的各种数据结构,保证你能快速的定位到你的数据的位置。如果你是安装查询条件,查询一个1000万行数据中的一条,那么数据库会很快的帮你查找到该记录。
文件:如果文件也是1000万条,就需要逐行扫描。
------解决方案--------------------
http://bbs.csdn.net/topics/330143849
------解决方案--------------------
LZ说的是读取而不是查询吧,如果是查询,我认为对文件进行全文检索也比查询数据库要快。各搜索引擎查询的速度都是毫秒级的,数据不可能是存储在数据库的
------解决方案--------------------
没有前提条件/场景描述文件数据库没法比
------解决方案--------------------
lz答得没错