C# 读取文件效率问题

CHL0107 2015-07-08 10:42:53
一,读取文件的速度快还是读取数据库的速度快?

二,读取什么样的数据库快?

三,读取什么类型的文件速度快?

四,有三种情况
1,一个文件夹下的多量文件(单个文件的数据量小)
2,多个文件夹下的少量文件(单个文件的数据量小)
3,一个文件夹下的少量文件(单个文件的数据量大)
我要从文件中读取某个信息。那么读取哪种效率高一些?
...全文
507 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
“读取什么样的数据库快?” 读取功能最少、甚至经常丢失数据的数据库最快。 ”读取什么类型的文件速度快?“ 读取什么类型的文件的速度都基本上是一样的。 你的“三种情况”的问题,其实还是没有从实际的过程(每一步骤如何索引)的角度去分析性能,而是只看标题。
  • 打赏
  • 举报
回复
如果你确实那么有把握进行“文件”操作,那么对于最简的那的考虑,你可以先花半天时间写出测试,看看连续插入1千个用户资料和10万个聊天记录,然后搜索某个10分钟内哪一个用户跟另外指定的用户进行了通话,看看你能用文件系统写出什么执行效率的程序来?!如果你都懒得去是用文件系统来做这个测试,那么连性能就都不用测了。
  • 打赏
  • 举报
回复
数据库不是你想象的那种“文件”可比的东西。数据库是用来“按照各种属性进行索引”的,而且支持一个丰富、灵活的数据查询语言或者api体系,而且支持跨多种不同性能和功能的文件系统和网络通讯系统,关系数据库则通常都支持(用户可指定不同隔离级别的)事务性机制,甚至支持“热备、冷备、分片”等等。这些哪一个是文件系统可比的呢? 如果没有合适的需求,那么其实所看到的东西就可以说”无所谓“。这是在根本(上述)数据库需求的情况下。 对于最简单的考虑,首先需要考虑的就是索引问题。数据库的数据本身也是持久化地写到文件里的,因此空谈"文件对比数据库”没有意义,这可能是“没有想到数据库也是把数据保存到文件中”而造成的错觉。
ajianchina 2015-07-08
  • 打赏
  • 举报
回复
读取文件的速度与电脑硬件密切相关,主要是硬盘的寻道时间、转速,内存的大小,系统总线速度。 数据库的速度主要指的是查询时间,跟读取文件的速度不好直接对比,但与硬件的关系是十分密切,数据库查询速度可以通过缓存、索引、RAC等等多种方法,之所以说跟文件读取速度不好直接对比,意思是这是数据库自身功能的实现,当然读取文件也可以通过建立文件索引来提高查询速度,但那是操作系统的功能实现。 要说什么数据库查询快,我知道的就是NoSQL了,从内存中读肯定快了。 总之一点,提高硬件配置就都快了。
showjim 2015-07-08
  • 打赏
  • 举报
回复
哪个快一般在于读取的硬盘分块数量少。 在NTFS系统中,当文件内存小到可以装进描述区的时候是不占用其它硬盘空间的,否则以硬盘簇为单位(不考虑系统压缩的情况)。 数据库保存文件是没有硬盘簇单位的概念的,不会浪费空间,所以小文件比较有利。 对于大文件,其实哪种方式都差不多,关键的问题是让文件占用空间具有连续性。
exception92 2015-07-08
  • 打赏
  • 举报
回复
读取一个 上万行的 txt文件 与 读取一个 上万行的Table表 效率肯定不一样。 读取文件,使用文件流 操作 应该要比读取数据库快,但读取文件后的 一系列的解析操作 也会有影响。 什么样的数据库快,实在是 没法理论。
南天空 2015-07-08
  • 打赏
  • 举报
回复
读取文件的操作时I/O操作,读取数据库时,连接的过程是I/O操作,后续是数据库自身支持的查询不再是I/O操作,因此如果查询次数相同的前提下,每次从文件中读取数据要比数据库中读取的代价要大,当然少量的查询基本体现不出来。
Poopaye 2015-07-08
  • 打赏
  • 举报
回复
读取文件和读取数据库的速度没有什么可比性,要从哪里取数据单纯是看业务的需求 同理数据库的速度也没啥可比性 读取文件的的速度,如果总大小相同,肯定是文件数量越少速度越快,和文件夹关系不大

110,570

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧