1 回答

TA貢獻(xiàn)1921條經(jīng)驗(yàn) 獲得超9個(gè)贊
MYSQL 免費(fèi),功能不錯(cuò),適合個(gè)人網(wǎng)站及一些小企業(yè)的網(wǎng)站應(yīng)用;
DB2 超大型,與ORACLE類(lèi)似,數(shù)據(jù)倉(cāng)庫(kù)和數(shù)據(jù)挖掘相當(dāng)?shù)牟诲e(cuò),特別是集群技術(shù)可以使DB2的可擴(kuò)性能達(dá)到極致。
3. MYSQL
MySQL不支持事務(wù)處理,沒(méi)有視圖,沒(méi)有存儲(chǔ)過(guò)程和觸發(fā)器,沒(méi)有數(shù)據(jù)庫(kù)端的用戶自定義函數(shù),不能完全使用標(biāo)準(zhǔn)的SQL語(yǔ)法。
從數(shù)據(jù)庫(kù)行家聽(tīng)說(shuō)的第一件事就是MySQL缺乏transactions,rollbacks, 和subselects的功能。如果你計(jì)劃使用MySQL寫(xiě)一個(gè)關(guān)于銀行、會(huì)計(jì)的應(yīng)用程序,或者計(jì)劃維護(hù)一些隨時(shí)需要線性遞增的不同類(lèi)的計(jì)數(shù)器,你將缺乏transactions功能。在現(xiàn)有的發(fā)布版本的MySQL下,請(qǐng)不要有任何的這些想法。(請(qǐng)注意,MySQL的測(cè)試版3.23.x系列現(xiàn)在已經(jīng)支持transactions了)。
在非常必要的情況下,MySQL的局限性可以通過(guò)一部分開(kāi)發(fā)者的努力得到克服。在MySQL中你失去的主要功能是subselect語(yǔ)句,而這正是其它的所有數(shù)據(jù)庫(kù)都具有的。換而言之,這個(gè)失去的功能是一個(gè)痛苦。
MySQL沒(méi)法處理復(fù)雜的關(guān)聯(lián)性數(shù)據(jù)庫(kù)功能,例如,子查詢(subqueries),雖然大多數(shù)的子查詢都可以改寫(xiě)成join
另一個(gè)MySQL沒(méi)有提供支持的功能是事務(wù)處理(transaction)以及事務(wù)的提交(commit)/撤銷(xiāo)(rollback)。一個(gè)事務(wù)指的是被當(dāng)作一個(gè)單位來(lái)共同執(zhí)行的一群或一套命令。如果一個(gè)事務(wù)沒(méi)法完成,那么整個(gè)事務(wù)里面沒(méi)有一個(gè)指令是真正執(zhí)行下去的。對(duì)于必須處理線上訂單的商業(yè)網(wǎng)站來(lái)說(shuō),MySQL沒(méi)有支持這項(xiàng)功能,的確讓人覺(jué)得很失望。但是可以用MaxSQL,一個(gè)分開(kāi)的服務(wù)器,它能通過(guò)外掛的表格來(lái)支持事務(wù)功能?!?br/>外鍵(foreignkey)以及參考完整性限制(referentialintegrity)可以讓你制定表格中資料間的約束,然后將約束(constraint)加到你所規(guī)定的資料里面。這些MYSQL沒(méi)有的功能表示一個(gè)有賴(lài)復(fù)雜的資料關(guān)系的應(yīng)用程序并不適合使用MySQL。當(dāng)我們說(shuō)MySQL不支持外鍵時(shí),我們指的就是數(shù)據(jù)庫(kù)的參考完整性限制--MySQL并沒(méi)有支持外鍵的規(guī)則,當(dāng)然更沒(méi)有支持連鎖刪除(cascadingdelete)的功能。簡(jiǎn)短的說(shuō),如果你的工作需要使用復(fù)雜的資料關(guān)聯(lián),那你還是用原來(lái)的Access吧?!?br/>你在MySQL中也不會(huì)找到存儲(chǔ)進(jìn)程(storedprocedure)以及觸發(fā)器(trigger)。
添加回答
舉報(bào)