總體來說,access與mysql的區別就是:
1.mySql是真正的數據庫,可以動態的自動進行數據處理。
2.Access提供是的是文件服務,自己不可以動態處理數據。
具體詳細區別如下所示:
(1)Mysql是Oracle支持的開源項目,而access是microsoftoffice的壹個非常小型的數據庫,需要付費,當然我們現在有的都是盜版,所以免費,但是這種盜版的access不可用於商業目的
(2)強調壹點,什麽數據庫都可以用“語言”連接,所以mysql和access都能用C,Cpp,java,python等語言連接......方法很簡單,如果以java為例的話,連接壹種數據庫就有三種方法。
(3)明確壹點,很多人都認為mysql是用來做那些小項目的,其實也可以做大項目哈,mysql還是很專業的。
壹篇詳細講述mysql和access區別的好文章!
MySQL∶網站開發者的新選擇
「變動」這兩個字對IT業界來說是再普通不過的事了。如果今天管理階層的主管們跟妳要數據庫的推薦名單,很可能在妳開始執行妳所推薦的方案之前,妳的推薦名單上的項目就已經過時了。如此壹來,妳可能就要重新考慮各種軟硬件方案,好讓妳∶
·幫妳將事情完成
·買來以便幫助別人完成他們的工作
·開發以便幫助別人更好地完成他們的工作
不論妳的消息有多新,在妳的建議通過層層關卡,並且拿到購買資金之前,妳的推薦表上的某些項目通常都會過時。幸運的是,沒有人會責怪妳,或者是對妳反唇相譏--這是這壹行裏很自然的事情。數據庫技術通常在妳能夠掌握它之前就變了。
為了適應日新月異的數據庫技術,有相當多的軟件工程師逐漸地從桌面數據庫軟件諸如MicrosoftAccess以及SQLServer,轉到使用MySQL。雖然嚴格說來MySQL並非SQLServer的對手,但許多服務提供商都支持MySQL,並視之為便宜而有效率的替代品。
SusanSalesHarkins經常在CNET
Builder.com
發表文章,是壹位精通微軟Office的專家。她也是UsingMicrosoftAccess97和UsingMicrosoftAccess2000兩書的作者,這兩本書均由Que所出版。MartinW.P.Reid也經常在CNET
Builder.com
發表文章,是英國貝爾法斯特女王大學(Queen'sUniversity)的分析師暨程序設計員。他也指導關系型數據庫設計的課程;工作之余也為北愛爾蘭的壹些小型企業充當數據庫顧問。▲考慮使用MySQL的原因
如果妳要找的是可靠的數據庫軟件,以便支持妳的網站開發工作,那麽以下的原因就說明了妳為什麽應該考慮MySQL而不是其它數據庫∶
·它便宜(通常是免費)。
·它的網絡承載比較少。
·它經過很好的優化(HighlyOptimized)。
·應用程序通過它做備份來比較簡單。
·它為各種不同的資料格式提供有彈性的擴展介面(ODBC)。
·它較好學,且操作簡單。
·妳負擔得起的客戶支持費用。
▲關於“$”的問題
簡單的說,妳不會找到比MySQL更便宜的了。事實上,對大多數用戶來說,MySQL是免費的。有時候雖然是要付出壹小筆的授權費,但是這個付費規定只限於以下兩種情況∶
·以內嵌(embedded)的方式使用MySQL服務器
·只使用MySQL的商業用途軟件
例如,Windows版本的MySQL服務器,需要授權。雖然只付比美金$200元多壹點點的費用,MySQL還是比其他任何數據庫軟件來得更便宜多了。OfficeXPDeveloper的零售價是美金$799元,升級版則是美金$549元。Access2002的價格是美金$339元,升級版則是美金$109元。
▲避免堵塞
針對多個使用者***同讀寫信息的需求,Access根本不是MySQL的對手。Access在大約十五個使用者連上來的時候,就輸掉了。我們還聽說過當只有五個人連上來時,就會有壹些問題(這並不是說,只有五個人能夠同時連上由Access數據庫支持的網站)。“同時連結”(Simultaneousconnection)事實上是壹種並發處理(concurrentprocess)。因此,雖然事實上Access可以處理的連結數目是無限制的,但只要那些連結保持在並發處理的範圍限制內就沒關系。對於只讀網站(這些網站並非妳想像中的少數)它可以支持到最多到255個使用者。而較大的網站,則無可避免的必須升級到SQLServer以提高穩定性和效率。
相對說來,MySQL內定最大連結數為100個使用者。但是,我們絕對不可以用壹個程序的內建設定來判斷它的效能。到目前為止,我們還沒聽說過使用MySQL的較大而且訪問頻繁的網站上的使用者有任何抱怨。除此之外,即使有網絡上有大量的資料往來,似乎並不會對MYSQL的查詢優化(queryoptimization)造成多大的影響。
在Windows98操作系統上使用相同的硬件和數據尺寸,MySQL表現得比Access2000還要快_但只是並非所有的情況下都是如此。這兩者在資料更新方面的效能,有著很大的差異,同樣的資料更新,Access要花上兩倍的時間。如果是在高速系統上做小量的資料的處理,妳不會去註意到這兩者間的差異。但只有在處理的是幾十萬筆資料的時候,這效能上的差異才會明顯。MySQL只在處理數據庫對象結構(objectstructure)的時候,才會輸給Access。當建立表格(table)以及索引的時候,MySqL會將表格鎖住,如此壹來會導致正在進行的大量資料處理速度慢下來。然而以上所提到的最後壹個問題在網站開發時,通常並不會造成麻煩。因為網站上,我們所重視的是用戶來訪時查詢的速度,而非資料儲存結構本身。因此,在這個領域,MySQL勝利。
▲MYSQL其它的優點
·優化
對於MySQL的優化,我們可以說,主要的問題在於妳的硬件條件,而非MySQL本身。不過對於Access,(以及其他桌面數據庫軟件)事情就不是這樣了。沒錯,MicrosoftJetDatabase的確實有效率,不過它還不是最快的。如果妳的數據庫設計得非常差,妳的網站還是會受到影響而速度變慢的。數據庫結構設計也會影響到MySQL,例如,MySQL並不支持外鍵(foreignkey)。這個缺點會影響到妳的數據庫設計以及網站的效率。對於使用MySQL做數據庫的網站,妳應該註意的是,如何讓硬盤存取IO減少到最低值、如何讓壹個或多個CPU隨時保持在高速作業的狀態、以及適當的網絡帶寬,而非實際上的數據庫設計以及資料查詢語句。事實上,有些網站開發者將MySQL稱為目前市面上跑得最快的數據庫。不過,當妳的數據庫有很多表格需要同時在壹個事務過程(transaction)內完成更新的時候,MySQL的確跑得不怎麽樣。
·備份
如果妳曾經有過搶救壹個損壞的MDB檔案的慘痛經驗,那麽妳會對MySQL表示非常激賞。這是MySQL另壹個勝過Access的地方。首先,mysqldump會產生壹個比Access好很多而且也更可靠的備份檔案。相比之下,在Access中妳只是將壹個MDB檔拷貝起來做備份。其次,即使MySQL的備份有部分損壞,復原起來也要比壹個損壞的MDB檔要容易得多了。
·可延伸性(Scalability)以及資料處理能力
套句登山者的話來說,將Access數據庫來跟MySQL相比,簡直就是像把印第安那的小山丘拿來跟科羅拉多洛磯山脈的Pike'sPeak頂相比較。事實就是這麽簡單∶MySQL可以處理的檔案比Access所能處理的檔案大很多。如果妳硬將Access數據庫弄到100MB的MDB檔案時,妳要準備好壹個字典厚的紀錄本來記錄來自客戶對於網站效率低下的抱怨。而類似的數據庫在MySQL上面跑,就不會發生承載過重的跡象。
另外,MySQL同時提供高度多樣性,能夠提供很多不同的使用者介面,包括命令行客戶端操作,網頁瀏覽器,以及各式各樣的程序語言介面,例如C+,Perl,Java,PHP,以及Python。妳可以使用事先包裝好的客戶端,或者幹脆自己寫壹個合適的應用程序。MySQL可用於Unix,Windows,以及OS/2等平臺,因此它可以用在個人電腦或者是服務器上。
沒錯,MicrosoftActiveXDataObjectsLibrary(ADO)的確使得Access在外部資料市場(foreigndatamarket)上能夠做更具彈性的應用。它能夠讓妳不用管資料的所在位置而取出資料,然後在公用的介面上(即網頁瀏覽器)將資料顯示出來。不過,其壞處是ADO畢竟是比較笨重(它本身就是個資源大雜燴)而且學習它要花不少的金錢跟時間,就算妳是壹個能力不錯的開發工程師或者軟件工程師也壹樣。沒有人能在壹天內將ADO學會。
▲學習曲線
如果妳已經熟悉數據庫技術,那麽基本上妳已經沒什麽問題了。精通數據庫的人在壹天之內就可以把MySQL學會,把這個經驗加到他的履歷表裏面去。相較之下,Access是個復雜得多的數據庫及開發工具。即使是壹個能力不錯的開發工程師也需要壹段時間才能具備足夠的專業知識,有效地使用這個軟件。
正如妳期待的,MySQL支持結構化查詢語言(StructuredQueryLanguage,SQL)。如果妳已經學會某種版本的SQL語言,事情會好辦很多。具有VB或者是VBA知識背景的開發工程師會發現,他們以前所具備的ASP背景,能夠幫助他們縮短學習時間。
▲客戶支持
雖然好用而且免費的客戶支持已不存在,然而MySQL倒提供了壹些電子群組名單供您參考。有壹些是頗具技術性的,而且會員們往往互相提供最佳的客戶支持--他們彼此分享經驗和專業知識。此外,妳還可以購買具有客戶支持的版本,包括email支持或者電話支持的方式。大致上來說,客戶支持費率並非固定的,因此我們無法提供妳相關價位的信息。
▲MySQL的不足之處
Access是壹個關聯性數據庫管理系統(RDBMS),然而MySQL並非在每壹個層面都是如此。這表示,雖然MySQL很好用,它還不是最好的。以下列表記錄了目前關聯性層面以及管理層面,MySQL尚未支持的部分:
MySQL沒法處理復雜的關聯性數據庫功能,例如,子查詢(subqueries),雖然大多數的子查詢都可以改寫成join。我們期待下壹版出來時,這項功能會被加進來。
另壹個MySQL沒有提供支持的功能是事務處理(transaction)以及事務的提交(commit)/撤銷(rollback)。壹個事務指的是被當作壹個單位來***同執行的壹群或壹套命令。如果壹個事務沒法完成,那麽整個事務裏面沒有壹個指令是真正執行下去的。對於必須處理線上訂單的商業網站來說,MySQL沒有支持這項功能,的確讓人覺得很失望。但是可以用MaxSQL,壹個分開的服務器,它能通過外掛的表格來支持事務功能。
外鍵(foreignkey)以及參考完整性限制(referentialintegrity)可以讓妳制定表格中資料間的約束,然後將約束(constraint)加到妳所規定的資料裏面。這些MYSQL沒有的功能表示壹個有賴復雜的資料關系的應用程序並不適合使用MySQL。當我們說MySQL不支持外鍵時,我們指的就是數據庫的參考完整性限制--MySQL並沒有支持外鍵的規則,當然更沒有支持連鎖刪除(cascadingdelete)的功能。簡短的說,如果妳的工作需要使用復雜的資料關聯,那妳還是用原來的Access吧。
妳在MySQL中也不會找到存儲進程(storedprocedure)以及觸發器(trigger)。(針對這些功能,在Access提供了相對的事件進程(eventprocedure)。)
Access的GetRows功能,提供了較好的資料拾取。
▲總結
下面這個表格能讓妳對於MySQL,Access,以及SQLServer大致上比起來是怎麽樣有個基本概念:
□訪問頻繁的網站
·MySQL√
·Access√**
·SQLServer√
□復雜的資料關聯
·MySQL×
·Access√
·SQLServer√
□在線訂單處理
·MySQL√*
·Access√***
·SQLServer√
□兼容性
·MySQL×
·Access√****
·SQLServer√
□易於使用及操作
·MySQL√
·Access×
·SQLServer×
註:
*需要MaxSQL
**前提是資料只讀的話
***通過JetSQL獲得的附加功能
****因為只有ADO
如果妳需要使用復雜的數據庫,並且有很多資源和金錢,那麽妳就用SQLServer吧。如果妳仍舊需要復雜的數據庫但是卻沒有雄厚的後援,那麽用Access看看。至於其他的人,至少應該給MySQL壹個使用的機會吧!