萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> access教程 >> access基礎教程 >> 淺談mysql和access區別

淺談mysql和access區別

Access教程:mysql和access有什麼區別


MySQL∶網站開發者的新選擇
   
【變動】這兩個字對IT業界來說是再普通不過的事了。如果今天管理階層的主管們跟你要的推薦名單,很可能在你開始執行你所推薦的方案之前,你的推薦名單上的項目就已經過時了。如此一來,你可能就要重新考慮各種軟硬件方案,好讓你∶
1、幫你將事情完成
2、買來以便幫助別人完成他們的工作
3、開發以便幫助別人更好地完成他們的工作
    不論你的消息有多新,在你的建議通過層層關卡,並且拿到購買資金之前,你的推薦表上的某些項目通常都會過時。幸運的是,沒有人會責怪你,或者是對你反唇相譏--這是這一行裡很自然的事情。技術通常在能夠掌握它之前就變了。
    為了適應日新月異的技術,有相當多的軟件工程師逐漸地從桌面軟件諸如MicrosoftAccess以及SQLServer,轉到使用MySQL。雖然嚴格說來MySQL並非SQLServer的對手,但許多服務提供商都支持MySQL,並視之為便宜而有效率的替代品。
考慮使用MySQL的原因
   
如果你要找的是可靠的軟件,以便支持你的網站開發工作,那麼以下的原因就說明了你為什麼應該考慮MySQL而不是其它∶
1、它便宜(通常是免費)。
2、它的網絡承載比較少。
3、它經過很好的優化(HighlyOptimized)。
4、應用程序通過它做備份來比較簡單。
5、它為各種不同的資料格式提供有彈性的擴展介面(ODBC)。
6、它較好學,且操作簡單。
7、你負擔得起的客戶支持費用。

關於“$”的問題
   
簡單的說,你不會找到比MySQL更便宜的了。事實上,對大多數用戶來說,MySQL是免費的。有時候雖然是要付出一小筆的授權費,但是這個付費規定只限於以下兩種情況∶
1、以內嵌(embedded)的方式使用MySQL服務器
2、只使用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倒提供了一些電子群組名單供您參考。有一些是頗具技術性的,而且會員們往往互相提供最佳的客戶支持 --他們彼此分享經驗和專業知識。此外,你還可以購買具有客戶支持的版本,包括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中也不會找到存儲進程(storedproc

copyright © 萬盛學電腦網 all rights reserved