C# 读取文件效率问题

问题描述

一,读取文件的速度快还是读取数据库的速度快?二,读取什么样的数据库快?三,读取什么类型的文件速度快?四,有三种情况1,一个文件夹下的多量文件(单个文件的数据量小)2,多个文件夹下的少量文件(单个文件的数据量小)3,一个文件夹下的少量文件(单个文件的数据量大)我要从文件中读取某个信息。那么读取哪种效率高一些?

解决方案

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

时间: 2024-07-29 09:34:23

C# 读取文件效率问题的相关文章

php使用file函数、fseek函数读取大文件效率对比分析_php技巧

php读取大文件可以使用file函数和fseek函数,但是二者之间效率可能存在差异,本文章向大家介绍php file函数与fseek函数实现大文件读取效率对比分析,需要的朋友可以参考一下. 1. 直接采用file函数来操作 由于 file函数是一次性将所有内容读入内存,而PHP为了防止一些写的比较糟糕的程序占用太多的内存而导致系统内存不足,使服务器出现宕机,所以默认情况下限制只能最大使用内存16M,这是通过php.ini里的 memory_limit = 16M 来进行设置,这个值如果设置-1,

Shell逐行读取文件的4种方法_linux shell

在Linux中有很多方法逐行读取一个文件的方法,其中最常用的就是下面的脚本里的方法,而且是效率最高,使用最多的方法.为了给大家一个直观的感受,我们将通过生成一个大的文件的方式来检验各种方法的执行效率. 方法1:while循环中执行效率最高,最常用的方法. 复制代码 代码如下: function while_read_LINE_bottm(){ While read LINE do echo $LINE done  < $FILENAME } 注释:我习惯把这种方式叫做read釜底抽薪,因为这种方

HDFS读文件过程分析:读取文件的Block数据

我们可以从java.io.InputStream类中看到,抽象出一个read方法,用来读取已经打开的InputStream实例中的字节,每次调用read方法,会读取一个字节数据,该方法抽象定义,如下所示: public abstract int read() throws IOException; Hadoop的DFSClient.DFSInputStream类实现了该抽象逻辑,如果我们清楚了如何从HDFS中读取一个文件的一个block的一个字节的原理,更加抽象的顶层只需要迭代即可获取到该文件的

调试-c#读取文件图片及声音问题

问题描述 c#读取文件图片及声音问题 本人在学习c#然后找了别人做得一个项目,我运行也ok,我想模仿做一个,但有些看不懂.如下: 1.图片 这个LLK.data是个文件夹吗,然后从里面找出.bmp文件还是什么,我在自己的项目的properities/resources.resx添加了图片,又在项目里创建了data文件夹里面放入图片,结果不行,错误大概意思,缺少LLk.data.resources.然后我在别人的项目里见到了这个 请问这个文件怎么形成的呢,里面是不是有图片资源啊.还有上面图片的两行

utf-8-jquery用ajax读取文件的时候里面的中文乱码

问题描述 jquery用ajax读取文件的时候里面的中文乱码 网页是UTF-8 txt也另存为UTF-8,读取出来以后还是乱码 解决方案 txt默认编码就可以了,,不需要设为utf-8吧,,不行的话,,你用文件流读取试试 解决方案二: ajax请求的文件也要存储为utf-8格式,乱码就是编码不统一的问题 解决方案三: 检查一下你的服务器(如Tomcat.Resin.Nginx.Apache等)编码设置是否正确. 解决方案四: 页面里面加入这句 Response.ContentEncoding =

c++-用C++读取文件中特定行的某几列数据并输出到另一个文件

问题描述 用C++读取文件中特定行的某几列数据并输出到另一个文件 AR ZIMM 2014 06 30 00 00 0.000000 2 2.175456910513e-08 1.929140019560e-11AR ZWE2 2014 06 30 00 00 0.000000 2 -6.930289135325e-03 2.317673679230e-11AS G01 2014 06 30 00 00 0.000000 2 1.652894267903e-05 1.737915981300e-

c语言-C语言 文件读写fscanf 不能读取文件第一行

问题描述 C语言 文件读写fscanf 不能读取文件第一行 我在做USACO的训练题 按照要求写了个读文件的程序,但是出了一点我不能理解的bug 希望老师指点指点 程序: int main () { char comet[6]; char group[6]; FILE *input; input=fopen ("ride.in", "r"); fscanf (input, "%sn%s", comet, group ); \fscanf (inp

ASP教程:读取文件和写文件

ASP教程:读取文件和写文件 读取文件操作: '------------------------------------------------- '函数名称:ReadTextFile '作用:利用AdoDb.Stream对象来读取UTF-8格式的文本文件 '---------------------------------------------------- Function ReadFromTextFile (FileUrl,CharSet)     dim str     set stm

利用fso读取文件总数,并且修改文件名

读取文件中所有文件的总数,并且可根据需要修改文件名. 读取文件中所有文件的总数,并且可根据需要修改文件名. 代码如下: <% On Error Resume Next set fso = CreateObject("Scripting.FileSystemObject") Set uploadfolder = fso.GetFolder (server.mappath("img"))'img 为指定的文件夹 set allfiles = uploadfolde