Heim >Datenbank >MySQL-Tutorial >MySQL数据库技术(28)_MySQL

MySQL数据库技术(28)_MySQL

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOriginal
2016-06-01 13:53:09829Durchsuche

  5.2 选择API

    本节介绍根据各种类型的应用程序选择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服务器自身的一部分而不是单独的过程模块被调用时,性能更好。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn