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