免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: eye_onme
打印 上一主题 下一主题

读写文件不是效率很低的嘛,那么数据库为何效率高呢 [复制链接]

论坛徽章:
0
31 [报告]
发表于 2005-04-12 12:39 |只看该作者

读写文件不是效率很低的嘛,那么数据库为何效率高呢

>;>;你的意思是不是说,文件系统的日志功能是不可靠的? 因为日志未必总是与磁盘上的保持同步。

应该是你write成功了不见得就确实磁道记录了。 不是有个工具sync 30秒运行一次吗?

论坛徽章:
0
32 [报告]
发表于 2005-04-12 12:45 |只看该作者

读写文件不是效率很低的嘛,那么数据库为何效率高呢

[quote]原帖由 "思一克"]还有两者读写文件都是在KENREL中执行的,但DIRECT/IO DIO是直接将数据搞到用户的BUFFER,而普通IO先搞到page buffer, 再COPY到用户buffer.[/quote 发表:


旷若发懵啊。多谢多谢!!
前阵子看page buffer和io调度,头都大了,早问您就好了。。

论坛徽章:
0
33 [报告]
发表于 2005-04-12 13:00 |只看该作者

读写文件不是效率很低的嘛,那么数据库为何效率高呢

To albcamus,

你过奖了。我都是临时实验(学习)的。原来也不是知道多少

论坛徽章:
0
34 [报告]
发表于 2005-04-13 14:35 |只看该作者

读写文件不是效率很低的嘛,那么数据库为何效率高呢

以 Oracle 为例
1。读
使用数据库有时候比file 要慢
比如说第一次使用某个数据时,Oracle肯定会比直接读file慢
但是,如果第二次要用到这个数据,Oracle直接从mem里读取,这样就比file要快
2。写
Oracle对data update / insert 的确是可以延迟写到磁盘的
它是先在mem里作修改,再由专门的dbwr 来写数据到磁盘。
3。个人认为,数据库和文件并不存在可比性
用文件,很难实现sql语句。
但是,使用数据库会耗用更多的系统资源。

论坛徽章:
62
2016科比退役纪念章
日期:2016-06-28 17:45:06奥兰多魔术
日期:2015-05-04 22:47:40菠菜神灯
日期:2015-05-04 22:35:07菠菜神灯
日期:2015-05-04 22:35:02NBA季后赛大富翁
日期:2015-05-04 22:33:34NBA常规赛纪念章
日期:2015-05-04 22:32:032015年亚洲杯纪念徽章
日期:2015-04-14 16:54:452015年亚洲杯之朝鲜
日期:2015-03-19 23:03:16明尼苏达森林狼
日期:2015-03-16 21:51:152015小元宵徽章
日期:2015-03-06 15:57:202015年迎新春徽章
日期:2015-03-04 09:55:282015年辞旧岁徽章
日期:2015-03-03 16:54:15
35 [报告]
发表于 2005-04-13 15:01 |只看该作者

读写文件不是效率很低的嘛,那么数据库为何效率高呢

原帖由 "rollingpig" 发表:
以 Oracle 为例
1。读
使用数据库有时候比file 要慢
比如说第一次使用某个数据时,Oracle肯定会比直接读file慢
但是,如果第二次要用到这个数据,Oracle直接从mem里读取,这样就比file要快
2。写
Oracle对data..........


无论第几次读写,数据库都无法和文件系统的速度比较。
在普通的PC机器上,各自只有一行记录比较。如果是mysql会比文件系统慢30到50倍
要是采用oracle就更慢,至少差别70,80倍

论坛徽章:
0
36 [报告]
发表于 2005-04-13 18:50 |只看该作者

读写文件不是效率很低的嘛,那么数据库为何效率高呢

文件系统总是比较快的。不用一再强调数据库的Cache,文件操作时OS也使用了Cache机制,在回忆回忆Unix原理课本中的内容?。

论坛徽章:
0
37 [报告]
发表于 2005-04-13 21:45 |只看该作者

读写文件不是效率很低的嘛,那么数据库为何效率高呢

都是从那里得出的数据库直接读写慢的结论?
如果是有数量级的差别的话,数据库厂家早就倒闭了.
还30~40,70~80的数量级差别呢.
单纯一条记录如果有这么大的差别的话,只能说明数据库的应用设计有问题.文件系统的DATA BUFFER肯定没有DATABASE的效率高,文件系统的PAGE BUFFER在DATABSE也有实现,并且比文件系统的PAGE BUFFER优化了很多,比如DATABASE采用了并发物理IO的算法,在文件系统里面是没有的.数据库系统的物理IO的排队机制是自身实现的,在调用DRIVER读写的时候,效率要比PAGE BUFFER的高(DATABASE参与的工作单位多,而PAGE BUFFER只有一个工作单位).
DATABASE比文件系统消耗资源多,但是能处理的数据能力是文件系统不能比拟的?DATABASE可以实现T级数据量的ONLINE并发访问,文件系统也能?
DATABASE对实际物理设备的可并发操作性有要求,那是因为他自身的机制比文件系统复杂,也就是说,在单一一块设备上的DATABASE没有优势,但是如果设计的合理的话,DATABASE的性能和文件系统不在一个档次上.(比如一个TABLE可以设计成跨越多个DEVICE,并且应用的设计者有效的使用了DATABASE的优化机制的话,那么不管如何读写,DATABASE的效率都要比文件系统高).但是,你不能拿DATABASE的顺序读写和文件系统按位置读写的比较,因为这是数据库应用系统设计者的问题,不是数据库本身的问题.

论坛徽章:
0
38 [报告]
发表于 2005-04-13 23:49 |只看该作者

读写文件不是效率很低的嘛,那么数据库为何效率高呢

就随机数据的突发读取而言,肯定是数据库慢。
但问题是简单的文件访问的话,你能在数百G数据中迅速找到你要的数据吗?你能迅速地删除数据吗?你能有效处理尺寸跨度极大的变长数据吗?你能实现并发版本控制吗?......
当你的程序实现了这些的时候,你随机数据读取的效率恐怕还不如现在这些成熟的数据库呢。

论坛徽章:
62
2016科比退役纪念章
日期:2016-06-28 17:45:06奥兰多魔术
日期:2015-05-04 22:47:40菠菜神灯
日期:2015-05-04 22:35:07菠菜神灯
日期:2015-05-04 22:35:02NBA季后赛大富翁
日期:2015-05-04 22:33:34NBA常规赛纪念章
日期:2015-05-04 22:32:032015年亚洲杯纪念徽章
日期:2015-04-14 16:54:452015年亚洲杯之朝鲜
日期:2015-03-19 23:03:16明尼苏达森林狼
日期:2015-03-16 21:51:152015小元宵徽章
日期:2015-03-06 15:57:202015年迎新春徽章
日期:2015-03-04 09:55:282015年辞旧岁徽章
日期:2015-03-03 16:54:15
39 [报告]
发表于 2005-04-14 10:50 |只看该作者

读写文件不是效率很低的嘛,那么数据库为何效率高呢

原帖由 "柳五随风" 发表:
都是从那里得出的数据库直接读写慢的结论?
如果是有数量级的差别的话,数据库厂家早就倒闭了.
还30~40,70~80的数量级差别呢.
单纯一条记录如果有这么大的差别的话,只能说明数据库的应用设计有问题.文件系统的DATA..........


你应该做过实验再发表评论.写个程序读写数据库和文件个10万次。
必定是几十倍甚至百倍的差别.
记住各自只有一行记录比较,不需要检索,和数据库的应用设计毫无关系.即便大量数据检索,数据库没有索引效率也高不到那里去.

你列出那些资料可能都毫无意义,数据库的查询,大量并发的时候可能最浪费时间的是connect和close,数据库的优势是体现的大量数据的查询、统计以及并发读写,不是在速度上.

论坛徽章:
0
40 [报告]
发表于 2005-04-14 11:12 |只看该作者

读写文件不是效率很低的嘛,那么数据库为何效率高呢

原帖由 "北京野狼" 发表:


你应该做过实验再发表评论.写个程序读写数据库和文件个10万次。
必定是几十倍甚至百倍的差别.
记住各自只有一行记录比较,不需要检索,和数据库的应用设计毫无关系.即便大量数据检索,数据库没有索引效率也?.........


个人比较赞同这个观点。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP