`
歆渊
  • 浏览: 307939 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

PolePosition 开源数据库评测框架

阅读更多

www.polepos.org 这个评测引擎的结果被放在了 HypersnoicSQL 和 db4o 两个产品的网站上用于宣传, 但是评测结果的曲线图正如它所强调的那样并不能简单的看待, 它强烈建议用PolePosition框架进行数据库系统评估的人仔细阅读框架源代码以后再推断自己的结论.

首先HSQL和DB4O这两个在polepos上拿了比较高分数的官方参赛者都是内存数据库, 而内存数据库显而易见的一个局限就是所能 [u]管理[/u] 的 [u]全部[/u] 对象/记录数受到内存大小限制, 而且运行状态下就要永久占用这么多内存, 不管是3,5年才用一回的数据还是一秒用几百回的.

另外DB4O冠以对象数据库的称号, 也并不是彻底先进性的象征. 目前几乎所有对象数据库系统都不是十分成功, 至少达不到关系数据库的程度. 原因之一就包括成熟OQL的难产, 古怪, 和带来的巨大学习成本, 似乎一直没有办法把它设计得既高效又像SQL那样好用. DB4O所极为推崇的java查询语法, 其实潜在的一个代价就是牺牲了作为关系数据库中流砥柱技术的索引检索法所带来的强劲检索性能提升. 科班出身的哥们儿们大概都开发过自己的MiniSQL作为数据库课程的大作业, 其中最关键的技术就是通过B+树的索引来加快检索速度. 一旦了解了这个原理, 一眼看到DB4O的通过java函数来判断一个对象是否符合查询条件的形式, 就知道它必须是在底层枚举所有每个可能匹配的对象来完成过滤筛选的. 这在语法上虽然自然了很多, 但是就好比一个内力深厚的人, 为了换一个文质彬彬的形象而自废武功, 能力上不是打折扣, 而是跳崖了. 而DB4O也很老实, 对它的这个处理方法也据实讲了. 按说这么丢脸的事情它本不太好直言不讳的, 但是仔细研究了它的成功案例和应用领域, 就不难明白. 其实它最主要的市场是用于嵌入式系统的, 这种系统求的不是强劲的性能, 而是完整的功能, 以及软件的小巧和易用. 但是一旦拿到哪怕是小型网站系统上去, DB4O的这套东西就真的不太拿得出台面了.

poleposition另一个发人深省的结果就是反映了Hibernate框架在追求OO的同时在性能上所造成的巨大牺牲. 不过我觉得按目前的软硬件局势, 较之加强硬件的成本, 软件开发和维护的成本相对还是更高一些, 所以在很多场合下Hibernate还不失为一个最优的解决方案.

但是真如PolePosition所给出的官方解释那样: The results show very clearly that there can not be one single "best product".  答案是不一定. 也许自此以前这就是现实情况, 但是很快会有一个翻案的可能性.

已经有将近两年的时间我一直在思考研究面向能力的程序设计方法, 近来将近半年的时间里, 我在专注的开发一个基于这种新的编程思想之上的对象数据库系统. 不过个人乃至小软件公司的力量毕竟有限, 要开发一个实际有用的软件平台, 还必须脚踏实地. 所以直到Java5.0的出现, 有了泛型,变参,标注的处理等新的语言特性, 这套系统才真正得以以实用的方式开发出来. 不过写这篇文章的时候, 我正在进行功能代码的收尾工作, 然后还需要写一些文档. 这些工作其实很快会完成了, 到时候都会公布在 www.ableverse.org 上, 感兴趣的同行可以关注一下.

分享到:
评论

相关推荐

    pdman开源数据库设计框架

    **pdman开源数据库设计框架详解** `pdman`是一个专为数据库设计打造的开源框架,其目标是简化数据库建模过程,提供高效、直观的工具支持。作为一个专业的IT从业者,了解并掌握`pdman`可以帮助你更好地进行数据库...

    开源数据库在金融行业的应用实践.pptx

    开源数据库在金融行业的应用实践是近年来的趋势,尤其在中国平安等大型金融机构中,开源数据库已经被广泛采纳。这主要基于几个关键因素:降低成本、提高灵活性、利用社区支持和促进技术创新。 首先,尽管开源数据库...

    Android开源数据库框架LitePal的应用分析.pdf

    传统数据库操作存在一定的缺陷,因此Android开源数据库框架LitePal应运而生,有效提高了数据处理的准确率与利用率。 LitePal是一种轻量级的ORM(对象关系映射)框架,它允许开发者以面向对象的方式操作SQLite数据库...

    DBScript一个开源的轻量级数据库映射框架

    DBScript是一个专为简化数据库操作而设计的开源轻量级框架。它致力于提供高效、便捷的方式来映射数据库结构到程序代码中,使得开发者能够更加专注于业务逻辑,而非底层的SQL语句编写。作为一款轻量级框架,DBScript...

    一种开源业务系统框架winform源码

    综合以上信息,这个开源业务系统框架Winform提供了完整的解决方案,包括业务流程管理、文件操作、开发指导、数据库集成以及可能的Web服务支持。对于.NET开发者,尤其是那些从事企业级Windows应用开发的人员,这个...

    中国银联开源数据库实践之路.zip

    《中国银联开源数据库实践之路》是一份深入探讨中国银联在开源数据库应用与实践方面的专业文档。在当今数字化转型的大潮中,开源数据库凭借其灵活性、可扩展性以及成本效益,已经成为许多企业,尤其是金融行业的首选...

    传统数据库到开源数据库迁移工具化流程.pdf

    ### 传统数据库到开源数据库迁移工具化流程 #### 概述 本文档主要探讨了从传统数据库迁移到开源数据库的过程及方法,特别是针对Oracle数据库到其他开源数据库的迁移。随着技术的发展与开源软件的成熟,越来越多的...

    开源数据库软件hsqldb

    博文链接:https://newdebug.iteye.com/blog/80868

    基于Node.js的PDMan开源数据库模型建模工具设计源码

    本项目是基于Node.js开发的PDMan开源数据库模型建模工具设计源码,主要使用JavaScript进行开发。项目共包含259个文件,其中JavaScript源代码文件92个,CSS样式文件83个,LESS样式文件33个,PNG图片文件14个,JSON...

    企业数据库软件选型5款主流开源数据库.pdf

    企业数据库软件选型5款主流开源数据库 本文主要介绍了五款主流的开源数据库,分别是Ingres、MaxDB、InterBase、PostgreSQL和Firebird。这些数据库都具有高性能、可靠性和可扩展性等特点,适合企业级应用。 1. ...

    开源数据库对象同步工具

    分别为开源免费数据库同步工具OpenDBDiff 和 开源免费数据库同步工具SQL-DBDiff_V0.4 ,不记得之前是否有上传OpenDBDiff,但SQL-DBDiff跟其有兄弟之嫌。当然这里的同步仅仅针对数据库对象而非数据。 关于如何将...

    基于SpringBoot的开源数据库表结构导出word文档工具.zip

    标题 "基于SpringBoot的开源数据库表结构导出word文档工具.zip" 提供的信息表明,这是一个使用SpringBoot框架开发的开源工具,其主要功能是将数据库的表结构导出为Word文档。SpringBoot是Java生态中的一个流行框架,...

    开源数据库在平安的应用实践.pdf

    平安集团在IT领域的创新实践中,对开源数据库的采纳与应用是一个重要的方向。开源数据库因其灵活性、成本效益和社区支持而受到青睐,尽管伴随着迁移和维护成本,但它们为微服务架构提供了更适合的数据存储解决方案。...

    disallowed-usernames, 一个开源的dis开源数据库.zip

    disallowed-usernames, 一个开源的dis开源数据库 不允许用户名...什么一个开源的dis开源数据库。这个项目的目的是创建一个通用的不允许用户名的web应用程序数据库。为什么例如你不希望有人使用名为 support 或者 admi

    盘点2013:21款最优秀的开源数据库.docx

    【盘点2013:21款最优秀的开源数据库】 在IT行业中,数据库扮演着至关重要的角色,支撑着各类软件项目。随着开源技术的日益普及,越来越多的企业和开发者选择使用开源数据库,以降低成本并获得更高的灵活性。以下是...

    开源免费数据库同步工具SQL-DBDiff_V0.4

    SQL-DBDiff_V0.4是一款开源且免费的数据库同步工具,主要针对那些需要在不同数据库之间进行数据比对和迁移的用户。该工具具备全英文界面,虽然可能对中文用户造成一定的语言障碍,但其丰富的配置选项为熟悉英文的...

    Android轻量级的数据库框架

    本文将深入探讨一种开源项目——轻量级的Android数据库框架,它通过XML布局文件对SQLite进行定义,简化了数据库的使用。 首先,我们需要了解SQLite的基本概念。SQLite是一个轻量级的、嵌入式的关系数据库,它支持...

    试用外企又没有购买商业的dbgate数据库,开源数据库,免安装版本,正版

    开源数据库

Global site tag (gtag.js) - Google Analytics