Linux数据库大比拚[7]

[入库:2005年9月19日] [更新:2007年3月25日]

本文简介:

  record = msqlFetchRow(result);
  printf("\nArticle no. %s\n", record[0]);
  printf("%s, %s:\n", record[2], record[1]);
  printf(" %s (%s)\n", record[3], record[4]);
  printf("Bought at %s; selling at %s; %s copies available\n\n",
  record[5], record[6], record[7]);
  };
  msqlFreeResult(result);
  }
   
    mSQL的 C API文档可以在mSQL 手册里找到,它以PostScript和一个大的HTML文件与mSQL一起发行。
  
    一些早期结论
  
    所有这3个讨论的数据库系统是相当容易安装、设置和编程。实现C API的客户库是很小的;与现今的比如GUI工具箱,他们的大小是可以忽略的,并且在客户程序的二进制大小或存储器足迹(footprint)没有太大的差别。
  
    Postgresql的ESQL API的不断增加的冗长和更长的准备时间通过少花些精力在转换字符串到非字符串后反过来进行弥补。
  
    到目前为止, 我没有说过任何关于性能的事情。我将在这个系列的下一部分做深入研究。
  
    评估大量因素
  
    我们将要在中途改变方向。在这部分,我将涉及与性能无关的话题。在下一个并且是最后一部分,我将全面研究基准测试并以最终结论结束。
  
    一般差别
  
    不同于PostgreSQL,MySQL和mSQL不是真正的关系数据库管理系统。我看到有人在新闻组里把MySQL称为“只是一个快速存储工具”,并且mSQL甚至被称为了一个玩具--不敢恭维。至少mSQL实现了部分一个完整的SQL DBM应该提供的功能。
  
    如果一个人需要一个真实的RDBMS,三者中唯一可行的选择是PostgreSQL。如果计算原始的性能表现,特别是如果对数据库所做的存取并不复杂并且大多数是自动的,一个更小的系统可能更好一些。因此,mSQL和MySQL被宣传为网数据库系统
  
    许可证
  
    PostgreSQL以一个BSD风格许可证被分发,在所有相关的方面均是自由的(也许对一些狂热者来说太自由了),如果版权声明被保留,基本上一个人可以用该软件做任何事情。
  
    MySQL是免费的并且在某些条件下源代码允许被修改,但是禁止为了商业目的的再分发。
  
    mSQL对非商业性组织的使用是免费的;但在一个14天评估时期以后,购买一个许可证是必要的。
  
    因为这些差别,在使用他们之一的企业的人们需要仔细地考虑许可条件。
  
    ANSI 标准的实现
  
    这3个系统都是在叫喊是完全实现 ANSI SQL 标准的,公平地讲,这在我看来有点可怕。当MySQL实现了开发者已经定义好的一个子集时,mSQL甚至没有尝试真正遵循ANSI 标准。PostgreSQL 最后定位在与 ANSI 完全兼容,但是它仍然有一条长路要走。
  
    PostgreSQL确实还没有支持参考完整性(RI),但是只测试了DBMS的事务(transaction)。另外,新的SQL特征像SQLSTATE变量也没有实现。
  
    MySQL既不支持事务也不保证参考完整性;对事务存取数据库表能明确地为锁定和解锁。
  
    mSQL缺乏 ANSI SQL 的大多数特征,它仅仅实现了一个最最少的API,没有事务和参考完整性。
  
    APIs
  
    所有3个系统测试的API大部分对处理是透明的,发生任何问题通常是由于不正确的文档,而不是API本身。
  
    mSQL和MySQL都没有嵌入式SQL(ESQL)预处理器功能。随着ESQL的诞生,现在我相当喜欢它,但是使用mSQL 和 MySQL 本身提供的C API并不困难。有同样光标的含义,但以一个不同的方法实现,并且把字符串传递给C函数仅比在代码中使用码嵌入式 SQL语句稍难一点儿。
  
    除了提到的ESQL API,PostgreSQL带有C API、C++绑定、JDBC、ODBC、Perl绑定、Python和Tcl绑定。
  
    MySQL对Win32平台有附加的ODBC支持;语言联编 (接口)至少有C++、Eiffel、Java、Perl、Python、PHP和Tcl可以得到。
  
    mSQL与Lite(一种类似C的脚本语言,与分发一起发行)紧密结合,可以得到一个称为 W3-mSQL的一个网站集成包,它是JDBC、ODBC、Perl和PHP API。
  
    注意我没有测试那些任何附加的绑定和特征;他们的质量和文档的表述不是很好。能获得很多对这3个系统的第三方扩展;本文不再赘述。
  
    文档和更多
  
    PostgreSQL以DocBook SGML格式记录文档。手册分为管理员指南、程序员指南、用户指南和一本教程。另外,FAQ和各种各样的说明文件涉及一些话题。软件的好多领域缺乏足够的文档。
  
    MySQL以GNU Texinfo格式记录文档;手册看起来完全。
  

本文关键:Linux数据库大比拚
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top