溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

MySQL和Oracle的區(qū)別是什么

發(fā)布時(shí)間:2021-05-31 09:37:56 來(lái)源:億速云 閱讀:199 作者:小新 欄目:MySQL數(shù)據(jù)庫(kù)

這篇文章主要介紹了MySQL和Oracle的區(qū)別是什么,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

一、宏觀上:

1、Oracle是大型的數(shù)據(jù)庫(kù)而Mysql是中小型數(shù)據(jù)庫(kù);Mysql是開(kāi)源的,Oracle是收費(fèi)的,且價(jià)格昂貴。

2、Oracle支持大并發(fā),大訪問(wèn)量,是OLTP的最好的工具。

3、安裝占用的內(nèi)存也是有差別,Mysql安裝完成之后占用的內(nèi)存遠(yuǎn)遠(yuǎn)小于Oracle所占用的內(nèi)存,并且Oracle越用所占內(nèi)存也會(huì)變多。

二、微觀上:

1、對(duì)于事務(wù)的支持

Mysql對(duì)于事務(wù)默認(rèn)是不支持的,只是有某些存儲(chǔ)引擎中如:innodb可以支持;而Oracle對(duì)于事物是完全支持的。

2、并發(fā)性

什么是并發(fā)性?并發(fā)性是OLTP(On-Line Transaction Processing聯(lián)機(jī)事務(wù)處理過(guò)程)數(shù)據(jù)庫(kù)最重要的特性,并發(fā)性涉及到資源的獲取、共享與鎖定。

Mysql,既支持表鎖,也支持行級(jí)鎖。表鎖,對(duì)資源鎖定的力度很大,如果一個(gè)session對(duì)一個(gè)表加鎖時(shí)間過(guò)長(zhǎng),會(huì)讓其他session無(wú)法更新此表的數(shù)據(jù)。

Oracle使用行級(jí)鎖,對(duì)資源鎖定的力度要小很多,只是鎖定sql需要的資源,并且加鎖是在數(shù)據(jù)庫(kù)中的數(shù)據(jù)行上,不依賴(lài)于索引。所以oracle對(duì)并發(fā)性的支持要好很多。

3、數(shù)據(jù)的持久性

Oracle保證提交的事務(wù)均可以恢復(fù),因?yàn)镺racle把提交的sql操作線寫(xiě)入了在線聯(lián)機(jī)日志文件中,保存到磁盤(pán)上,如果出現(xiàn)數(shù)據(jù)庫(kù)或者主機(jī)異常重啟,重啟Oracle可以靠聯(lián)機(jī)在線日志恢復(fù)客戶(hù)提交的數(shù)據(jù)。

Mysql默認(rèn)提交sql語(yǔ)句,但是如果更新過(guò)程中出現(xiàn)db或者主機(jī)重啟的問(wèn)題,也可能會(huì)丟失數(shù)據(jù)。

4、事務(wù)隔離級(jí)別

MySQL是repeatable read的隔離級(jí)別,而Oracle是read commited的隔離級(jí)別,同時(shí)二者都支持serializable串行化事務(wù)隔離級(jí)別,可以實(shí)現(xiàn)最高級(jí)別的。

讀一致性。每個(gè)session提交后其他session才能看到提交的更改。Oracle通過(guò)在undo表空間中構(gòu)造多版本數(shù)據(jù)塊來(lái)實(shí)現(xiàn)讀一致性,每個(gè)session 查詢(xún)時(shí),如果對(duì)應(yīng)的數(shù)據(jù)塊發(fā)生變化,Oracle會(huì)在undo表空間中為這個(gè)session構(gòu)造它查詢(xún)時(shí)的舊的數(shù)據(jù)塊。

MySQL沒(méi)有類(lèi)似Oracle的構(gòu)造多版本數(shù)據(jù)塊的機(jī)制,只支持read commited的隔離級(jí)別。一個(gè)session讀取數(shù)據(jù)時(shí),其他session不能更改數(shù)據(jù),但可以在表最后插入數(shù)據(jù)。session更新數(shù)據(jù)時(shí),要加上排它鎖,其他session無(wú)法訪問(wèn)數(shù)據(jù)

5、提交方式

Oracle默認(rèn)不自動(dòng)提交,需要手動(dòng)提交。Mysql默認(rèn)自動(dòng)提交。

6、邏輯備份

Mysql邏輯備份是要鎖定數(shù)據(jù),才能保證備份的數(shù)據(jù)是一致的,影響業(yè)務(wù)正常的DML(數(shù)據(jù)操縱語(yǔ)言Data Manipulation Language)使用;Oracle邏輯備份時(shí)不鎖定數(shù)據(jù),且備份的數(shù)據(jù)是一致的。

7、sql語(yǔ)句的靈活性

mysql對(duì)sql語(yǔ)句有很多非常實(shí)用而方便的擴(kuò)展,比如limit功能(分頁(yè)),insert可以一次插入多行數(shù)據(jù);Oracle在這方面感覺(jué)更加穩(wěn)重傳統(tǒng)一些,Oracle的分頁(yè)是通過(guò)偽列和子查詢(xún)完成的,插入數(shù)據(jù)只能一行行的插入數(shù)據(jù)。

8、數(shù)據(jù)復(fù)制

MySQL:復(fù)制服務(wù)器配置簡(jiǎn)單,但主庫(kù)出問(wèn)題時(shí),叢庫(kù)有可能丟失一定的數(shù)據(jù)。且需要手工切換叢庫(kù)到主庫(kù)。

Oracle:既有推或拉式的傳統(tǒng)數(shù)據(jù)復(fù)制,也有dataguard的雙機(jī)或多機(jī)容災(zāi)機(jī)制,主庫(kù)出現(xiàn)問(wèn)題是,可以自動(dòng)切換備庫(kù)到主庫(kù),但配置管理較復(fù)雜。

9、分區(qū)表和分區(qū)索引

MySQL的分區(qū)表還不太成熟穩(wěn)定;Oracle的分區(qū)表和分區(qū)索引功能很成熟,可以提高用戶(hù)訪問(wèn)db的體驗(yàn)。

10、售后與費(fèi)用

Oracle是收費(fèi)的,出問(wèn)題找客服;Mysql是免費(fèi)的的,開(kāi)源的,出問(wèn)題自己解決。

11、權(quán)限與安全

Oracle的權(quán)限與安全概念比較傳統(tǒng),中規(guī)中矩;MySQL的用戶(hù)與主機(jī)有關(guān),感覺(jué)沒(méi)有什么意義,另外更容易被仿冒主機(jī)及ip有可乘之機(jī)。

12、性能診斷方面

Oracle有各種成熟的性能診斷調(diào)優(yōu)工具,能實(shí)現(xiàn)很多自動(dòng)分析、診斷功能。比如awr、addm、sqltrace、tkproof等 ;MySQL的診斷調(diào)優(yōu)方法較少,主要有慢查詢(xún)?nèi)罩尽?/p>

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“MySQL和Oracle的區(qū)別是什么”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI