MYSQL数据库和ACCESS数据库有什么区别?
⼀篇详细讲述mysql和access区别的好⽂章!
MySQL∶⽹站开发者的新选择
「变动」这两个字对 IT 业界来说是再普通不过的事了。如果今天管理阶层的主管们跟你要数据库的推荐名单,很可能在你开始执⾏你所推荐的⽅案之前,你的推荐名单上的项⽬就已经过时了。如此⼀来,你可能就要重新考虑各种软硬件⽅案,好让你∶
·帮你将事情完成
·买来以便帮助别⼈完成他们的⼯作
·开发以便帮助别⼈更好地完成他们的⼯作
不论你的消息有多新,在你的建议通过层层关卡,并且拿到购买资⾦之前,你的推荐表上的某些项⽬通常都会过时。幸运的是,没有⼈会责怪你,或者是对你反唇相讥 -- 这是这⼀⾏⾥很⾃然的事情。数据库技术通常在你能够掌握它之前就变了。
为了适应⽇新⽉异的数据库技术,有相当多的软件⼯程师逐渐地从桌⾯数据库软件诸如 Microsoft Access 以及 SQL Server,转到使⽤MySQL。虽然严格说来MySQL 并⾮ SQL Server 的对⼿,但许多服务提供商都⽀持 MySQL,并视之为便宜⽽有效率的替代品。
Susan Sales Harkins 经常在 CNET Builder 发表⽂章,是⼀位精通微软 Office 的专家。她也是Using Microsoft Access 97和Using Microsoft Access 2000两书的作者,这两本书均由 Que 所出版。
access转mysql教程视频Martin W. P. Reid 也经常在 CNET Builder 发表⽂章,是英国贝尔法斯特⼥王⼤学(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 学会。
▲学习曲线
如果你已经熟悉数据库技术,那么基本上你已经没什么问题了。精通数据库的⼈在⼀天之内就可以把 MySQL 学会,把这个经验加到他的履历表⾥⾯去。相较之下,Access 是个复杂得多的数据库及开发⼯具。即使是⼀个能⼒不错的开发⼯程师也需要⼀段时间才能具备⾜够的专业知识,有效地使⽤这个软件。
正如你期待的,MySQL ⽀持结构化查询语⾔(Structured Query Language ,SQL)。如果你已经学会某种版本的 SQL 语⾔,事情会好办很多。具有 VB 或者是 VBA 知识背景的开发⼯程师会发现,他们以前所具备的 ASP 背景,能够帮助他们缩短学习时间。
▲客户⽀持
虽然好⽤⽽且免费的客户⽀持已不存在,然⽽MySQL 倒提供了⼀些电⼦组名单供您参考。有⼀些是颇具技术性的,⽽且会员们往往互相提供最佳的客户⽀持 -- 他们彼此分享经验和专业知识。此外,你还可以购买具有客户⽀持的版本,包括 email ⽀持或者电话⽀持的⽅式。⼤致上来说,客户⽀持费率并⾮固定的,因此我们⽆法提供你相关价位的信息。
▲MySQL 的不⾜之处
Access 是⼀个关联性数据库管理系统(RDBMS),然⽽ MySQL 并⾮在每⼀个层⾯都是如此。这表⽰,虽然 MySQL 很好⽤,它还不是最好的。以下列表记录了⽬前关联性层⾯以及管理层⾯,MySQL 尚未⽀持的部分:
MySQL 没法处理复杂的关联性数据库功能,例如,⼦查询(subqueries),虽然⼤多数的⼦查询都可以改写成 join。我们期待下⼀版出来时,这项功能会被加进来。
另⼀个 MySQL 没有提供⽀持的功能是事务处理(transaction)以及事务的提交(commit)/撤销(rollback)。⼀个事务指的是被当作⼀个单位来共同执⾏的⼀或⼀套命令。如果⼀个事务没法完成,那么整个事务⾥⾯没有⼀个指令是真正执⾏下去的。对于必须处理线上订单的商业⽹站来说, MySQL 没有⽀持这项功能,的确让⼈觉得很失望。但是可以⽤MaxSQL,⼀个分开的服务器,它能通过外挂的表格来⽀持事务功能。
外键(foreign key)以及参考完整性限制(referential integrity)可以让你制定表格中资料间的约束,然后将约束(constraint)加到你所规定的资料⾥⾯。这些MYSQL没有的功能表⽰⼀个有赖复杂的资料关系的应⽤程序并不适合使⽤ MySQL。当我们说 MySQL 不⽀持外键时,我们指的就是数据库的参考完整性限制 -- MySQL 并没有⽀持外键的规则,当然更没有⽀持连锁删除(cascading delete)的功能。简短的说,如果你的⼯作需要使⽤复杂的资料关联,那你还是⽤原来的 Access 吧。
你在 MySQL 中也不会到存储进程(stored procedure)以及触发器(trigger)。(针对这些功能,在 Access 提供了相对的事件进程(event procedure)。)
Access 的 GetRows 功能,提供了较好的资料拾取。
▲总结
下⾯这个表格能让你对于 MySQL,Access,以及 SQL Server ⼤致上⽐起来是怎么样有个基本概念:
□访问频繁的⽹站
·MySQL √
·Access √**
·SQL Server √
□复杂的资料关联
·MySQL ×
·Access √
·SQL Server √
□在线订单处理
·MySQL √*
·Access √***
·SQL Server √
□兼容性
·MySQL ×
·
Access √****
·SQL Server √
□易于使⽤及操作
·MySQL √
·Access ×
·SQL Server ×
注:
* 需要MaxSQL
** 前提是资料只读的话
*** 通过Jet SQL获得的附加功能
**** 因为只有ADO
如果你需要使⽤复杂的数据库,并且有很多资源和⾦钱,那么你就⽤ SQL Server 吧。如果你仍旧需要复杂的数据库但是却没有雄厚的后援,那么⽤ Access 看看。⾄于其他的⼈,⾄少应该给 MySQL ⼀个使⽤的机会吧!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。