读写文件不是效率很低的嘛,那么数据库为何效率高呢
俺们这里就是三大DATABASE的厂家之一.另外,我谈的是数据库ENGINE的IO问题,不是数据库系统应用的问题,比如我用STORAGE PROCEDURE实现的话,基本不需要考虑CONNECT/CLOSE的问题.
另外DATABASE ENGINE自身的IO操作也可以看做和本地FILESYSTEM操作等同的.
至于你作的实验假设,需要考虑IO分布问题,我说了,单一设备两者差别很小,到IO并发情况下,我测试过,性能大约和设备数量成正比的(在IO可以并发的情况下).
如果非要拿应用DATABASE环境和文件系统比较的话,那么也应该是和NFS,JFS,GFS.XFS等比较.
读写文件不是效率很低的嘛,那么数据库为何效率高呢
原帖由 "柳五随风" 发表:俺们这里就是三大DATABASE的厂家之一.
另外,我谈的是数据库ENGINE的IO问题,不是数据库系统应用的问题,比如我用STORAGE PROCEDURE实现的话,基本不需要考虑CONNECT/CLOSE的问题.
另外DATABASE ENGINE自身的IO操作也?.........
总算遇到一个真做数据库的 :D
我问个问题对于一个没有主键没有索引的大表。我数据库不是很熟悉。
select出一条再有什么BUFFER,难道不是遍利大文件?还有什么捷径?
读写文件不是效率很低的嘛,那么数据库为何效率高呢
只要没有索引任何操作都要遍历整个表
术语大约叫做:full table scan
除非你用了sql server里的top之类的东东
:)
读写文件不是效率很低的嘛,那么数据库为何效率高呢
原帖由 "北京野狼" 发表:你应该做过实验再发表评论.写个程序读写数据库和文件个10万次。
必定是几十倍甚至百倍的差别.
记住各自只有一行记录比较,不需要检索,和数据库的应用设计毫无关系.即便大量数据检索,数据库没有索引效率也
读写文件不是效率很低的嘛,那么数据库为何效率高呢
原帖由 "sunsroad" 发表:又一个喜欢透过现象“想”本质的,事实可以作证,这种思维通常都是错误的。
如果你真的想了解这两者之间的差别,建议你认真的找一点资料看看,了解一下什么叫做文件系统,什么叫做数据库。只有当你真正的理解?.........
你有什么理论就说出来,没话说就回家去睡觉。
读写文件不是效率很低的嘛,那么数据库为何效率高呢
FULL TABLE SCANSCAN的是TABLESPACE,不一定就是大文件,也可以是RAW DEVICE.
另外:大表上面没有INDEX(不管是存储索引(B-TREE等),还是算法索引(比如HASH算法)的话,只能是FULL TABLE SCAN了,性能非常差.不推荐这样使用.小的静态表可以是FULL TABLE SCAN的,对性能没影响,甚至稍微好一点.
读写文件不是效率很低的嘛,那么数据库为何效率高呢
原帖由 "柳五随风" 发表:FULL TABLE SCAN
SCAN的是TABLESPACE,不一定就是大文件,也可以是RAW DEVICE.
另外:大表上面没有INDEX(不管是存储索引(B-TREE等),还是算法索引(比如HASH算法)的话,只能是FULL TABLE SCAN了,性能非常差.不推荐这..........
那我理解数据库无论如何也不能赶的上文件系统。
数据库可能在文件查找的方法更有效一些。
我刚写了程序试验,的确数据库比文件系统速度差别很大啊
读写文件不是效率很低的嘛,那么数据库为何效率高呢
:)你能在DATABASE ENGINE里面测试?:),恐怕还是在应用级别上吧?:)
我说了,用DATABASE应用和本地文件系统相比较,不公平,即使要比较的话,也是要在海量数据级上比较.另外DATABASE是面向关系运算的,所以你也得在这上面比较.你总不能拿DATABASE当文件系统用吧?:)
读写文件不是效率很低的嘛,那么数据库为何效率高呢
谁说的数据库的IO效率高?IO永远是计算机心中的痛!不管是操作系统,还是数据库,概么能外。