MYSQL数据库和ACCESS数据库有什么区别?
发布时间:2018-09-30
MySQL∶网站开发者的新选择
「变动」这两个字对 IT 业界来说是再普通不过的事了。假如今日办理阶级的主管们跟你要数据库的引荐名单,很能够在你开始履行你所引荐的计划之前,你的引荐名单上的项目就现已过期了。 如此一来,你能够就要重新思考各种软硬件计划,好让你∶
・帮你将工作完结
・买来以便协助他人完结他们的工作
・开发以便协助他人十分好地完结他们的工作
不管你的音讯有多新,在你的主张经过层层关卡,并且拿到采购资金之前,你的引荐表上的某些项目一般都会过期。走运的是,没有人会责怪你,或许是对你反唇相讥 -- 这是这一行里很天然的工作。数据库技能一般在你能够把握它之前就变了。
为了习惯一日千里的数据库技能,有相当多的软件工程师逐渐地从桌面数据库软件比如 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 学会。
▲学习曲线
假如你现已熟悉数据库技能,那么基本上你现已没什么疑问了。通晓数据库的人在一天之内就能够把 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 功用,供给了较好的材料拾取。