日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Mysql 和oracle的区别

發(fā)布時間:2025/3/19 数据库 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Mysql 和oracle的区别 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

(1)對事務(wù)的提交

MySQL默認是自動提交,而Oracle默認不自動提交,需要用戶手動提交,需要在寫commit;指令或者點擊commit按鈕

(2) 分頁查詢

MySQL是直接在SQL語句中寫"select… from …where…limit x, y",有l(wèi)imit就可以實現(xiàn)分頁;而Oracle則是需要用到偽列ROWNUM和嵌套查詢(select * from( select rownum r,a from tabName where rownum <= 20 )where r > 10)

(3) 事務(wù)隔離級別

MySQL是read commited的隔離級別,而Oracle是repeatable read的隔離級別,同時二者都支持serializable串行化事務(wù)隔離級別,可以實現(xiàn)最高級別的讀一致性。每個session提交后其他session才能看到提交的更改。Oracle通過在undo表空間中構(gòu)造多版本數(shù)據(jù)塊來實現(xiàn)讀一致性,每個session 查詢時,如果對應(yīng)的數(shù)據(jù)塊發(fā)生變化,Oracle會在undo表空間中為這個session構(gòu)造它查詢時的舊的數(shù)據(jù)塊
MySQL沒有類似Oracle的構(gòu)造多版本數(shù)據(jù)塊的機制,只支持read commited的隔離級別。一個session讀取數(shù)據(jù)時,其他session不能更改數(shù)據(jù),但 可以在表最后插入數(shù)據(jù)。session更新數(shù)據(jù)時,要加上排它鎖,其他session無法訪問數(shù)據(jù)

(4) 對事務(wù)的支持

MySQL在innodb存儲引擎的行級鎖的情況下才可支持事務(wù),而Oracle則完全支持事務(wù)

(5) 保存數(shù)據(jù)的持久性

MySQL是在數(shù)據(jù)庫更新或者重啟,則會丟失數(shù)據(jù),Oracle把提交的sql操作線寫入了在線聯(lián)機日志文件中,保持到了磁盤上,可以隨時恢復(fù)

(6) 并發(fā)性

MySQL以表級鎖為主,對資源鎖定的粒度很大,如果一個session對一個表加鎖時間過長,會讓其他session無法更新此表中的數(shù)據(jù)。
雖然InnoDB引擎的表可以用行級鎖,但這個行級鎖的機制依賴于表的索引,如果表沒有索引,或者sql語句沒有使用索引,那么仍然使用表級鎖。
Oracle使用行級鎖,對資源鎖定的粒度要小很多,只是鎖定sql需要的資源,并且加鎖是在數(shù)據(jù)庫中的數(shù)據(jù)行上,不依賴與索引。所以O(shè)racle對并 發(fā)性的支持要好很多。

(7) 邏輯備份

MySQL邏輯備份時要鎖定數(shù)據(jù),才能保證備份的數(shù)據(jù)是一致的,影響業(yè)務(wù)正常的dml使用,Oracle邏輯備份時不鎖定數(shù)據(jù),且備份的數(shù)據(jù)是一致

(8) 復(fù)制

MySQL:復(fù)制服務(wù)器配置簡單,但主庫出問題時,叢庫有可能丟失一定的數(shù)據(jù)。且需要手工切換叢庫到主庫。
Oracle:既有推或拉式的傳統(tǒng)數(shù)據(jù)復(fù)制,也有dataguard的雙機或多機容災(zāi)機制,主庫出現(xiàn)問題是,可以自動切換備庫到主庫,但配置管理較復(fù)雜。

(9) 性能診斷

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

(10)權(quán)限與安全

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

(11)分區(qū)表和分區(qū)索引

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

(12)管理工具

MySQL管理工具較少,在linux下的管理工具的安裝有時要安裝額外的包(phpmyadmin, etc),有一定復(fù)雜性。
Oracle有多種成熟的命令行、圖形界面、web管理工具,還有很多第三方的管理工具,管理極其方便高效。

(13)最重要的區(qū)別

MySQL是輕量型數(shù)據(jù)庫,并且免費,沒有服務(wù)恢復(fù)數(shù)據(jù)。
Oracle是重量型數(shù)據(jù)庫,收費,Oracle公司對Oracle數(shù)據(jù)庫有任何服務(wù)。

總結(jié)

以上是生活随笔為你收集整理的Mysql 和oracle的区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。