免费注册 查看新帖 |

Chinaunix

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

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

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

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

俺们这里就是三大DATABASE的厂家之一.
另外,我谈的是数据库ENGINE的IO问题,不是数据库系统应用的问题,比如我用STORAGE PROCEDURE实现的话,基本不需要考虑CONNECT/CLOSE的问题.
另外DATABASE ENGINE自身的IO操作也可以看做和本地FILESYSTEM操作等同的.
至于你作的实验假设,需要考虑IO分布问题,我说了,单一设备两者差别很小,到IO并发情况下,我测试过,性能大约和设备数量成正比的(在IO可以并发的情况下).
如果非要拿应用DATABASE环境和文件系统比较的话,那么也应该是和NFS,JFS,GFS.XFS等比较.

论坛徽章:
0
42 [报告]
发表于 2005-04-14 16:59 |只看该作者

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

原帖由 "柳五随风" 发表:
俺们这里就是三大DATABASE的厂家之一.
另外,我谈的是数据库ENGINE的IO问题,不是数据库系统应用的问题,比如我用STORAGE PROCEDURE实现的话,基本不需要考虑CONNECT/CLOSE的问题.
另外DATABASE ENGINE自身的IO操作也?.........


总算遇到一个真做数据库的

我问个问题对于一个没有主键没有索引的大表。我数据库不是很熟悉。

select出一条再有什么BUFFER,难道不是遍利大文件?还有什么捷径?

论坛徽章:
0
43 [报告]
发表于 2005-04-14 17:15 |只看该作者

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

只要没有索引
任何操作都要遍历整个表
术语大约叫做:full table scan
除非你用了sql server里的top之类的东东

论坛徽章:
0
44 [报告]
发表于 2005-04-14 19:21 |只看该作者

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

[quote]原帖由 "北京野狼" 发表:


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

论坛徽章:
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
45 [报告]
发表于 2005-04-14 20:50 |只看该作者

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

原帖由 "sunsroad" 发表:


又一个喜欢透过现象“想”本质的,事实可以作证,这种思维通常都是错误的。

如果你真的想了解这两者之间的差别,建议你认真的找一点资料看看,了解一下什么叫做文件系统,什么叫做数据库。只有当你真正的理解?.........


你有什么理论就说出来,没话说就回家去睡觉。

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

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

FULL TABLE SCAN
SCAN的是TABLESPACE,不一定就是大文件,也可以是RAW DEVICE.

另外:大表上面没有INDEX(不管是存储索引(B-TREE等),还是算法索引(比如HASH算法)的话,只能是FULL TABLE SCAN了,性能非常差.不推荐这样使用.小的静态表可以是FULL TABLE SCAN的,对性能没影响,甚至稍微好一点.

论坛徽章:
0
47 [报告]
发表于 2005-04-14 22:42 |只看该作者

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

原帖由 "柳五随风" 发表:
FULL TABLE SCAN
SCAN的是TABLESPACE,不一定就是大文件,也可以是RAW DEVICE.

另外:大表上面没有INDEX(不管是存储索引(B-TREE等),还是算法索引(比如HASH算法)的话,只能是FULL TABLE SCAN了,性能非常差.不推荐这..........


那我理解数据库无论如何也不能赶的上文件系统。
数据库可能在文件查找的方法更有效一些。
我刚写了程序试验,的确数据库比文件系统速度差别很大啊

论坛徽章:
0
48 [报告]
发表于 2005-04-14 23:47 |只看该作者

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



你能在DATABASE ENGINE里面测试?,恐怕还是在应用级别上吧?

我说了,用DATABASE应用和本地文件系统相比较,不公平,即使要比较的话,也是要在海量数据级上比较.另外DATABASE是面向关系运算的,所以你也得在这上面比较.你总不能拿DATABASE当文件系统用吧?

论坛徽章:
0
49 [报告]
发表于 2005-04-15 00:08 |只看该作者

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

谁说的数据库的IO效率高?IO永远是计算机心中的痛!
不管是操作系统,还是数据库,概么能外。

论坛徽章:
0
50 [报告]
发表于 2005-04-15 01:53 |只看该作者

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

我看过有书说大型数据库改写了操作系统的磁盘io部分
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP