如果db还没有file快,要db干吗?安全等等我可以编程实现

[复制链接]
查看11 | 回复9 | 2012-1-4 11:49:54 | 显示全部楼层 |阅读模式
如果db还没有file快,要db干吗?安全等等我可以编程实现
我的任务是处理100000篇2k大小的文档,数据量不大也不小,我有一个概念数据库要比文件系统快,我认为数据库的索引系统要比文件系统的效率高,但我的实验证明vc+ access比vc+file慢,我访问access用odbc,如果我用vc+orcale,insert任务和select任务会比vc+file快吗?如果用ado访问,用orcale专用驱动呢?如果db还没有file快,要db干吗?安全等等我可以编程实现
回复

使用道具 举报

千问 | 2012-1-4 11:49:54 | 显示全部楼层
其实这要看你的应用了,你是对文件做什么方面的操作?如果你是将文件一个一个存放在数据库中,那当然会慢。
回复

使用道具 举报

千问 | 2012-1-4 11:49:54 | 显示全部楼层
你用ACCESS操作大数据当然慢了,用VC+ORACLE肯定会比你的VC+FILE快
回复

使用道具 举报

千问 | 2012-1-4 11:49:54 | 显示全部楼层
但如果你认为自己编码可是实现数据库的功能?
我只能说你对数据库实在是太无知了
问你一个最最基本最简单的问题:假如1000万条记录要查一条怎么做?
别告诉我你自己维护一个索引文件?
如果要维护 主外键约束呢?
回复

使用道具 举报

千问 | 2012-1-4 11:49:54 | 显示全部楼层
牛, 你自己能做一套RDBMS了
回复

使用道具 举报

千问 | 2012-1-4 11:49:54 | 显示全部楼层
我按照需求写程序,我追求的是速度,但file会比db快我仍感到吃惊
如果需求变了,安全和灵活要求很高,我想db是唯一的选择,但我以前用orcale时,有一次要insert100000条纪录,很慢(2hour),后来将其写入文件,再用orcale的dataload工具insert,飞快(120S),file比db快,orcale看来也不例外
回复

使用道具 举报

千问 | 2012-1-4 11:49:54 | 显示全部楼层
因为你根本就误会 DB 了
回复

使用道具 举报

千问 | 2012-1-4 11:49:54 | 显示全部楼层
Oracle的数据存放也是基于文件的。当然,也有存放在裸设备的情况。
数据库读取数据时,最终还是要通过去读文件的,比直接读文件多了一些数据的处理操作。所以,文件比数据库快并不奇怪。
但是,这只是理论上的说明。
实际操作中,你如果需要从文件中获取数据的话,还包括如何在一个大文件去搜索你需要数据的问题,我想,这个方面可能很难做好。
还有很多方面,如数据库的管理,数据的安全,数据的备份与恢复,等等。自己用文件处理,很难去做。
至于你用sqlldr从文件倒数据到数据库,比直接insert快了很多,那也是由于在做insert时,数据库还有很多方面的事情要做,最简单的,比如考虑回滚的问题。
而用sqlldr时,数据的处理方式和在oracle中做insert不一样,而且很多方面不会去处理了,当然速度也不同了。
回复

使用道具 举报

千问 | 2012-1-4 11:49:54 | 显示全部楼层
数据库的优点在于并发访问控制,可以同时让很多人按各种条件进行查询、修改、删除等操作;而普通数据文件很难支持多个人同时操作文件,因为你要自己写出文件锁。。。。
所以你如果做科学计算,可以用文件。
数据库的优点在于综合查询和索引技术,而你用文件可能
在组合查询的优化上要花费一些工夫。
其它很多了,你可以参照一下数据库的原理和起源。
回复

使用道具 举报

千问 | 2012-1-4 11:49:54 | 显示全部楼层
其实这个本来就是两种不同层次的概念阿!!VC对文件的访问肯定要比数据库快的多!!难道大家都不懂的去追求速度吗??本来数据库有很多是文件代替不了的嘛~~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行