欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

MySQL和Access的区别

程序员文章站 2022-06-16 14:08:32
...

为了适应日新月异的技术,有相当多的软件工程师逐渐地从桌面软件诸如 Microsoft Access 以及 SQL Server,转到使用 MySQL。虽然严格说来MySQL 并非 SQL Server 的对手,但许多服务提供商都支持 MySQL,并视之为便宜而有效率的替代品。 Susan Sales Harkins

  为了适应日新月异的技术,有相当多的软件工程师逐渐地从桌面软件诸如 Microsoft Access 以及 SQL Server,,转到使用 MySQL。虽然严格说来MySQL 并非 SQL Server 的对手,但许多服务提供商都支持 MySQL,并视之为便宜而有效率的替代品。

  Susan Sales Harkins 经常在 CNET Builder.com 发表文章,是一位精通微软 Office 的专家。她也是Using Microsoft Access 97和Using Microsoft Access 2000两书的作者,这两本书均由 Que 所出版。

  Martin W. P. Reid 也经常在 CNET Builder.com 发表文章,是英国贝尔法斯特女王大学(Queen's University) 的分析师暨程序设计员。他也指导关系型设计的课程;工作之余也为北爱尔兰的一些小型企业充当顾问。

  ▲考虑使用 MySQL 的原因

  如果你要找的是可靠的软件,以便支持你的网站开发工作,那么以下的原因就说明了你为什么应该考虑 MySQL而不是其它∶

  ·它便宜(通常是免费)。

  ·它的网络承载比较少。

  ·它经过很好的优化(Highly Optimized)。

  ·应用程序通过它做备份来比较简单。

  ·它为各种不同的资料格式提供有弹性的扩展介面 (ODBC)。

  ·它较好学,且操作简单。

  ·你负担得起的客户支持费用。

  ▲关于“$”的问题

  简单的说,你不会找到比 MySQL 更便宜的了。事实上,对大多数用户来说,MySQL 是免费的。有时候虽然是要付出一小笔的授权费,但是这个付费规定只限于以下两种情况∶

  ·以内嵌(embedded)的方式使用 MySQL

  ·只使用 MySQL 的商业用途软件

  例如,Windows 版本的 MySQL ,需要授权。虽然只付比美金 $200 元多一点点的费用,MySQL 还是比其他任何软件来得更便宜多了。Office XP Developer 的零售价是美金 $799 元,升级版则是美金 $549 元。Access 2002 的价格是美金 $339 元,升级版则是美金 $109 元。

  ▲ 避免堵塞

  针对多个使用者共同读写信息的需求,Access 根本不是 MySQL 的对手。Access 在大约十五个使用者连上来的时候,就输掉了。我们还听说过当只有五个人连上来时, 就会有一些问题(这并不是说,只有五个人能够同时连上由 Access 支持的网站)。“同时连结”(Simultaneous connection)事实上是一种并发处理(concurrent process)。因此,虽然事实上 Access 可以处理的连结数目是无限制的,但只要那些连结保持在并发处理的范围限制内就没关系。对于只读网站(这些网站并非你想像中的少数)它可以支持到最多到 255 个使用者。而较大的网站,则无可避免的必须升级到 SQL Server 以提高稳定性和效率。

  相对说来,MySQL 内定最大连结数为 100 个使用者。但是,我们绝对不可以用一个程序的内建设定来判断它的效能。到目前为止,我们还没听说过使用 MySQL 的较大而且访问频繁的网站上的使用者有任何抱怨。除此之外,即使有网络上有 大量 的资料往来,似乎并不会对MYSQL的查询优化(query optimization)造成多大的影响。

  在 Windows 98 上使用相同的硬件和数据尺寸,MySQL 表现得比 Access 2000 还要快 – 但只是并非所有的情况下都是如此。 这两者在资料更新方面的效能,有着很大的差异,同样的资料更新,Access 要花上两倍的时间。如果是在高速系统上做小量的资料的处理,你不会去注意到这两者间的差异。 但只有在处理的是几十万笔资料的时候,这效能上的差异才会明显。MySQL 只在处理对象结构(object structure)的时候,才会输给 Access。 当建立表格(table) 以及索引的时候,MySqL 会将表格锁住,如此一来会导致正在进行的大量资料处理速度慢下来。然而以上所提到的最后一个问题在网站开发时,通常并不会造成麻烦。 因为网站上,我们所重视的是用户来访时查询的速度,而非资料储存结构本身。因此,在这个领域,MySQL 胜利。

  ▲MYSQL其它的优点

  ·优化

  对于 MySQL 的优化,我们可以说,主要的问题在于你的硬件条件,而非 MySQL 本身。不过对于 Access,(以及其他桌面软件)事情就不是这样了。 没错,Microsoft Jet Database 的确实有效率,不过它还不是最快的。如果你的设计得非常差,你的网站还是会受到影响而速度变慢的。 结构设计也会影响到 MySQL,例如,MySQL 并不支持外键(foreign key)。这个缺点会影响到你的设计以及网站的效率。对于使用 MySQL 做的网站,你应该注意的是,如何让存取IO减少到最低值、如何让一个或多个 CPU 随时保持在高速作业的状态、以及适当的网络带宽, 而非实际上的设计以及资料查询语句。事实上,有些网站开发者将 MySQL 称为目前市面上跑得最快的。不过,当你的有很多表格需要同时在一个事务过程(transaction)内完成更新的时候,MySQL 的确跑得不怎么样。

  ·备份

  如果你曾经有过抢救一个损坏的 MDB 档案的惨痛经验,那么你会对 MySQL 表示非常激赏。这是 MySQL 另一个胜过 Access 的地方。首先,mysqldump 会产生一个比 Access 好很多而且也更可靠的备份档案。相比之下,在 Access中你只是将一个 MDB 档拷贝起来做备份。其次,即使 MySQL 的备份有部分损坏,复原起来也要比一个损坏的 MDB 档要容易得多了。

  ·可延伸性(Scalability)以及资料处理能力

  套句登山者的话来说,将 Access 来跟 MySQL 相比,简直就是像把印第安那的小山丘拿来跟科罗拉多洛矶山脉的 Pike's Peak 顶相比较。事实就是这么简单∶MySQL 可以处理的档案比 Access 所能处理的档案大很多。如果你硬将 Access 弄到 100MB 的 MDB 档案时,你要准备好一个字典厚的纪录本来记录来自客户对于网站效率低下的抱怨。而类似的在 MySQL 上面跑,就不会发生承载过重的迹象。

  另外,MySQL 同时提供高度多样性,能够提供很多不同的使用者介面,包括命令行客户端操作,网页浏览器,以及各式各样的程序语言介面,例如 C+,Perl,Java,PHP,以及 Python。你可以使用事先包装好的客户端,或者干脆自己写一个合适的应用程序。MySQL 可用于 Unix,Windows,以及 OS/2 等平台,因此它可以用在个人电脑或者是上。

  没错,Microsoft ActiveX Data Objects Library(ADO)的确使得 Access 在外部资料市场(foreign data market)上能够做更具弹性的应用。它能够让你不用管资料的所在位置而取出资料,然後在公用的介面上(即网页浏览器)将资料显示出来。不过,其坏处是 ADO 毕竟是比较笨重(它本身就是个资源大杂烩)而且学习它要花不少的金钱跟时间,就算你是一个能力不错的开发工程师或者软件工程师也一样。没有人能在一天内将 ADO 学会。

  ▲学习曲线