怎样提高读取巨型文件的效率?

怎样提高读取巨型文件的效率?,第1张

输入输出,与设备有关的 *** 作特费机时。

文件格式为2进制(即 非 ASCII).

无复杂的格式和类型转换,最好是普通的BYTE,WORD形式,一次读一个大的BYTE(unsigned char) 区域/结构。

无回绕(不用和少用 rewind() ),

无反复前前后后地找 数据位置 *** 作,

最好按顺序,一直读到文件尾。

用指针。

RAM 要大,避免虚拟存储。

多用户系统,设置高优先权。

1、直接读文件相比数据库查询效率更胜一筹,而且文中还没算上连接和断开的时间。

2、一次读取的内容越大,直接读文件的优势会越明显(读文件时间都是小幅增长,这跟文件存储的连续性和簇大小等有关系),这个结果恰恰跟天缘预料的相反,说明MYSQL对更大文件读取可能又附加了某些 *** 作(两次时间增长了近30%),如果只是单纯的赋值转换应该是差异偏小才对。

3、写文件和INSERT几乎不用测试就可以推测出,数据库效率只会更差。

4、很小的配置文件如果不需要使用到数据库特性,更加适合放到独立文件里存取,无需单独创建数据表或记录,很大的文件比如图片、音乐等采用文件存储更为方便,只把路径或缩略图等索引信息放到数据库里更合理一些。

5、PHP上如果只是读文件,file_get_contents比fopen、fclose更有效率,不包括判断存在这个函数时间会少3秒左右。

6、fetch_row和fetch_object应该是从fetch_array转换而来的,我没看过PHP的源码,单从执行上就可以说明fetch_array效率更高,这跟网上的说法似乎相反。

顺序读取的话文件快。检索的话数据库高。

不只是java,所有语言都有这个特点。

在2000年左右,国内还争论过使用数据库还是文件来保存数据。现在已经没有争论了。数据存储就是为了用的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8136706.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存