MySQL数据库技术(28)_MySQL
本节介绍根据各种类型的应用程序选择A P I的方法,比较C、DBI 和PHP API 的能力,并给出它们相对的优点和缺点,并指出什么时候应选择哪一个。
首先应该指出,笔者不认为任一种语言优于其他语言。尽管笔者的确有自己的喜好,但还是统统使用它们。您也会有自己的喜好,像我的评论家一样。一个评论家会感觉应该强调C 对MySQL 编程的重要性,应将这种重要性上升到更重要的程度,而另一个评论家会认为C编程相当困难,应放弃使用它!您应当权衡本节中讨论的这些因素,得出自己的结论。在对特定任务选择哪个API 时,要考虑以下问题:
■ 预期的执行环境。期望使用应用程序的上下文环境。
■ 性能。当在API 语言中编写时,如何使应用程序高效地执行。
■ 开发的容易性。如何便于API 和它的语言编写应用程序。
■ 可移植性。除MySQL 以外,应用程序是否还将用于其他数据库系统。
下面进一步分析每个问题。要注意这些因素的相互影响。例如,您想要一个运行良好的应用程序,但使用一个可快速开发该应用程序的语言也同等重要,即使该应用程序不能非常有效地运行也同样。
5.2.1 执行环境
当编写应用程序时,通常应考虑使用哪种环境。例如,该应用程序可能是从外壳程序中调用的报告生成器程序,或一个应付账目概要程序,在每月的月底作为cron job 进行运行。从外壳程序或cron 程序中运行的命令通常依赖它们自己,而且很少需要运行环境。另外,可以编写一个应用程序来试图由Web 服务器调用。这样的程序期望能从它的运行环境中抽出非常特殊类型的信息:客户正在使用什么浏览器?在邮件清单订阅请求格式中输入什么参数?客户提供正确的口令访问我们个人信息了吗?每种API 语言都以它在这些不同的环境中适于编写应用程序而变化:
■C 是通用目标的语言,从理论上讲任何任务都可使用它。在实际中, C 倾向于用于更频繁的独立程序而不是对Web 的编程。其原因可能是在C 中不像在Perl 或在PHP 中那样容易地实现文本处理和内存管理,并且这些处理和管理在Web 应用程序中大量地使用。
■ P e r l,像C 一样,适合于编写独立的程序。然而,对于Web 站点的开发,Perl 也是非常有用的,例如通过使用CGI.pm 模块。这使Perl 成为编写连接MySQL 和Web 的应用程序的便利的语言。这样的应用程序可以经CGI.pm 模块与Web 接口,并可以使用DBI 与MySQL 相互作用。
■ PHP 是设计用来编写Web 应用程序的语言,所以这个环境显然是最适合的。而且,数据库访问是PHP 最大的优势之一,所以它是实现与MySQL 相关的任务的Web 应用程序最自然的选择。也可以将PHP 作为一个独立的解释程序(例如,从外壳程序中运行脚本),但不能非常频繁地使用它。
根据以上这些需要考虑的问题,对于独立的应用程序, C 和Perl 是最佳语言。对于We b应用程序, Perl 和PHP 是最合适的。如果需要编写这两种类型的应用程序,但又不会使用这些语言的任何一种,并想用尽可能少的精力来学习,则Perl 可能是您最佳的选择。
5.2.2 性能
我们通常喜欢应用程序尽可能快地运行。然而,实际上性能的重要性取决于所使用的程序的频率。对于一个月运行一次晚上定时工作的程序,性能可能不是非常重要的。而对于在Web 站点上一秒钟运行若干次的程序,则每当排除一点无效性都会带来巨大的不同。后一种情况下,在站点的有效性和请求中,性能发挥着重要的作用。一个缓慢的站点是令用户苦恼的,无论站点的内容如何,如果您依靠站点作为一项收入来源,则性能的降低直接影响收入。如果不能一次为多个连接提供服务,访问者只会产生厌烦情绪而去其他的站点。
性能评价是一个复杂的问题。当编写特定的API 时,应用程序完成得好坏的最好指标是在这个API 环境下编写并进行测试。而且最好的比较测试是在不同的API 环境下多次运行该应用程序,来比较每个版本。当然,那不是一般的工作。一般来说,您只想获取编写的应用程序。一旦它工作了,如果它需要运行得更快,您就可以考虑优化它,使用更少的内存,或有某些需要用其他方法提高的方面。但是,至少有如下两个因素会影响性能:
■ 编译的程序比解释的程序运行得更快。
■ 对于在Web 上下文环境中使用的解释语言,在解释程序作为We b服务器自身的一部分而不是单独的过程模块被调用时,性能更好。
下一篇: PHP:这段正则是验证啥的,看不懂?