資料庫那麼多..我要用哪一種..?
原文由 MVP 小朱大與 MVP 璉大 發表原文位址:http://forums.microsoft.com/msdn-cht/ShowPost.aspx?PostID=576255%26SiteID=14Question %26lt;作者:TerrySun%26gt; :請問一下各位大大...當遇到可以使用asp.net2.0來開發的時候,該選擇哪種資料庫呢??主要是使用這兩種資料庫會有蠻大的價差的問題,而且一差就差了快一倍的價格...一般來說...大家都會說,當資料量大的時候,就該使用sqlserver了...但如果資料量小的話,access就很夠用了...在網路上,也蠻多網站都是用access來做開發...問題來了...資料量要大到多大,才叫大呢??asp.net配合access到底可以做到多大的資料量存取呢??那如果用ASP.NET配合MYSQL會不會比配ACCESS效能來的高呢??在asp.net出來之後,現在又出現了一個sqlserver 2005 express... 這些資料庫, 到底該怎麼選擇才可以達到最經濟、最實用、又最符合系統使用呢??
不知道有沒有相關的數具呢?在網上也找蠻久... 月老似乎也沒相關的比較性的文章...主要是為了能說服客戶使用sql server,必需提出原因,為何不使用access或mysql,如果只是資料量的關係...那多少筆資料內適用access,多少筆資料以上,又必需要用到sql server才不會因為資料庫的關係,造成系統效能不佳...這些在跟客戶解釋的時候,似乎都必需提出個數具,才有辦法說服客戶...讓客戶安心... 這部份沒這方面經驗...似乎也很難說出個所以然... 故上來跟各位大大求救...Ans %26lt;作者:小朱%26gt;
我不知道你的客戶需求是什麼,我提供幾個看法:如果用於小型的 Windows Application,可考慮使用 Access,但如果是少量使用者的小型 Web 應用程式,則可考慮使用 SQL Server Express,反正都是免費的,而且又有 SQL Server Management Studio Express 可輔助管理(這在 MSDE 時代可沒有的 ...)
如果是中型(50人以上,資料庫大小會超過 4GB 的),則可考慮使用 SQL Server Standard Edition,MySQL 也行,只是 MyODBC D 網頁設計river 有部份中文的問題當無法解決,MySQL connector for .NET 是比較好的連接 MySQL 選擇,但 SQL Server 是首選 .
大型系統則可考慮 SQL Server Enterprise Edition 或 MySQL Pro Certified Server,然而上述問題仍然存在 .
如果你用的是 JSP, PHP 時,MySQL 是首選,但如果是 ASP.NET,SQL Server 似乎是比較好的選擇 .
資料量大小要看各資料庫的負荷程度,SQL Server Express 有每個資料庫只能到 4GB 的限制,Access 則是 2GB(這個大小還要減去系統物件的空間才算),SQL Server 則是 1,048,516 TB,MySQL InnoDB 則是具有 64TB 的表格空間(資料庫空間查不到)不過在查詢設計和效能上,SQL Server 都會勝於 Access,MySQL 的話則要看熟悉程度,但你要給客戶一個觀念,就是商用環境的 MySQL 是要錢的,MySQL Community Edition(免費的 MySQL)能否使用在商業環境,要看授權合約 .Ans %26lt;作者:璉璉%26gt;
記住:
MySQL 並非是免費,若是你?下拉關鍵字}發的網頁系統並未開放原始碼,你可能需要購買商業授權,請參閱原廠網頁說明。目前跟德瑞克討論 MySQL 授權的結論是,網頁系統若需支援 MySQL 時,會需要同時支援其他資料庫,以避免 MySQL 商業授權問題,置於委辦廠商要選那套受支援的資料庫時,由委辦廠商自己決定。



我目前的網頁系統視需求,必要時同時支援上述三種資料庫,開發用 Access ,正式系統用 SQL Server ,MySQL 則是因應上級單位要求。如果你沒有上級單位強力要求下,目前暫時仍不建議你使用 MySQL ,主要在於罕用字的支援,基本上在 Windows 下使用 MyODBC 連,實際上是不支援 Unicode ,所以日韓簡繁罕等遠東語系不能共存,但是你的應用程式若只有透過 MyODBC 連,則造成的編碼差異並不會明顯看出來,但是資料庫並非是設計給單一系統使用,若是連線端有用 jdbc 的,MySQL 在 jdbc 下才真正支援 Unicode ,就會造成一邊是亂碼,MyODBC/jdbc 只能有一邊正常。下面有更細的測試經驗談:htt 整合行銷軟體p://tlcheng.spaces.msn.com/blog/cns!145419920BFD55A7!763.entry
Access 跟 SQL Server/MySQL 的應用上來說,基本上就是檔案型與伺服器型的差異。
比較的文章先前有蒐集一些連結,放在下面位置:http://tlcheng.spaces.msn.com/blog/cns!145419920BFD55A7!741.entry
個人看法:
Access 每個資料庫在瞬間同時不能有超過 255 人連線,包含未關閉的連線,不能超過 2GB,設計上以每個資料表的筆數在 50 萬筆以內仍能有不錯的效果,管理上可能會有巨集病毒的危機,不過一般連線程式並不會存取巨集病毒,到不用擔心。適合用於簡單、需轉散佈的系統上。(註:我自己就有單一表格超過 300 萬筆 (row) 的資料,跑起來也還好,沒有想像中的慢,目前每天仍在更新資料及提供查詢,一般 Access 連線用完會立刻關閉,所以瞬間同時可能只有 0.02 以內的時間間距,網頁服務人數通常會更先到達資源不足的狀況)
SQLExpress 有 4 GB 的限制,除非你考慮的是免費資料庫,?網路行銷軟體_則直接拿 SQL Server 比是比較實在,當你單一資料表超過 50 萬筆以上時,用 SQL Server 仍能維持一定的效能(但是初始連線感覺比 Access 慢,可能是 .Net 架構關係?),SQL Server 是以大型資料庫為設計目標,設計考量包含了很多部份的最佳化,包含連線共用、效能調校、快取等,當你的系統很重視效能時,可以考慮 SQL Server ,不過這個要拿錢來換,SQL Server 想要跑的快又順,DRAM 越大越好。
當然大部分系統在效能上,很多是開發者的問題,比如說你沒有善用 SQL 語法,例如資料筆數你不用 Count 直接取得,卻要把資料全部讀取後,算 Count ,或是限制一定資料讀取筆數之類,這種是開發者要考量的,此外 SQL Server 通常為了安全考量,會跟 Web Server 分開放,一個放在安管內,一個放在廣域網路上,或是透過 port map 映射,這種情況兩台之間的網路頻寬會變成另外一個效能瓶頸,Access 通常放在本機上(不建議使用 UNC 做成網路資料庫),在傳輸上會比較快。
徵信社 >
arrow
arrow
    全站熱搜

    ipobar 發表在 痞客邦 留言(0) 人氣()