oracle和mysql對比分析_第1頁
oracle和mysql對比分析_第2頁
oracle和mysql對比分析_第3頁
oracle和mysql對比分析_第4頁
oracle和mysql對比分析_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、MySql 與 Oracle 的差別1 . 并發(fā)性并發(fā)性是oltp 數(shù)據(jù)庫最重要的特性,但并發(fā)涉及到資源的獲取、共享與鎖定。mysql:mysql 以表級鎖為主,對資源鎖定的粒度很大,如果一個session 對一個表加鎖時間過長,會讓其他session 無法更新此表中的數(shù)據(jù)。雖然InnoDB 引擎的表可以用行級鎖,但這個行級鎖的機制依賴于表的索引,如果表沒有索引,或者sql 語句沒有使用索引,那么仍然使用表級鎖。oracle:oracle 使用行級鎖,對資源鎖定的粒度要小很多,只是鎖定sql 需要的資源,并且加鎖是在數(shù)據(jù)庫中的數(shù)據(jù)行上,不依賴與索引。所以oracle 對并發(fā)性的支持要好很多。2

2、 一致性oracle:oracle 支持 serializable 的隔離級別,可以實現(xiàn)最高級別的讀一致性。每個session提交后其他session 才能看到提交的更改。oracle 通過在 undo 表空間中構造多版本數(shù)據(jù)塊來實現(xiàn)讀一致性,每個session 查詢時,如果對應的數(shù)據(jù)塊發(fā)生變化,oracle 會在undo 表空間中為這個session 構造它查詢時的舊的數(shù)據(jù)塊。mysql:mysql 沒有類似oracle 的構造多版本數(shù)據(jù)塊的機制,只支持read commited 的隔離級別。一個session 讀取數(shù)據(jù)時,其他session 不能更改數(shù)據(jù),但可以在表最后插入數(shù)據(jù)。 sess

3、ion 更新數(shù)據(jù)時,要加上排它鎖,其他session 無法訪問數(shù)據(jù)。3 . 事務oracle 很早就完全支持事務。mysql 在 innodb 存儲引擎的行級鎖的情況下才支持事務。4 . 數(shù)據(jù)持久性oracle保證提交的數(shù)據(jù)均可恢復,因為oracle 把提交的sql 操作線寫入了在線聯(lián)機日志文件中,保持到了磁盤上,如果出現(xiàn)數(shù)據(jù)庫或主機異常重啟,重啟后oracle 可以考聯(lián)機在線日志恢復客戶提交的數(shù)據(jù)。mysql:默認提交sql 語句,但如果更新過程中出現(xiàn)db 或主機重啟的問題,也許會丟失數(shù)據(jù)。5 . 提交方式oracle 默認不自動提交,需要用戶手動提交。mysql 默認是自動提交。6 邏輯備

4、份oracle 邏輯備份時不鎖定數(shù)據(jù),且備份的數(shù)據(jù)是一致的。mysql 邏輯備份時要鎖定數(shù)據(jù),才能保證備份的數(shù)據(jù)是一致的,影響業(yè)務正常的dml 使用。7 熱備份oracle 有成熟的熱備工具rman ,熱備時,不影響用戶使用數(shù)據(jù)庫。即使備份的數(shù)據(jù)庫不一致,也可以在恢復時通過歸檔日志和聯(lián)機重做日志進行一致的回復。mysql:myisam 的引擎,用mysql 自帶的 mysqlhostcopy 熱備時,需要給表加讀鎖,影響dml 操作。 innodb 的引擎,它會備份innodb 的表和索引,但是不會備份.frm 文件。用ibbackup 備份時,會有一個日志文件記錄備份期間的數(shù)據(jù)變化,因此可以

5、不用鎖表,不影響其他用戶使用數(shù)據(jù)庫。但此工具是收費的。innobackup 是結合 ibbackup 使用的一個腳本,他會協(xié)助對.frm 文件的備份。8 .sql 語句的擴展和靈活性mysql 對 sql 語句有很多非常實用而方便的擴展,比如limit 功能, insert 可以一次插入多行數(shù)據(jù),select 某些管理數(shù)據(jù)可以不加from 。oracle 在這方面感覺更加穩(wěn)重傳統(tǒng)一些。9. 復制oracle: 既有推或拉式的傳統(tǒng)數(shù)據(jù)復制,也有dataguard 的雙機或多機容災機制,主庫出現(xiàn)問題是,可以自動切換備庫到主庫,但配置管理較復雜。mysql: 復制服務器配置簡單,但主庫出問題時,叢庫

6、有可能丟失一定的數(shù)據(jù)。且需要手工切換叢庫到主庫。10. 性能診斷oracle 有各種成熟的性能診斷調優(yōu)工具,能實現(xiàn)很多自動分析、診斷功能。比如awr 、 addm 、 sqltrace 、 tkproof 等mysql 的診斷調優(yōu)方法較少,主要有慢查詢?nèi)罩尽?1. 權限與安全mysql 的用戶與主機有關,感覺沒有什么意義,另外更容易被仿冒主機及ip 有可乘之機。oracle 的權限與安全概念比較傳統(tǒng),中規(guī)中矩。12. 分區(qū)表和分區(qū)索引oracle 的分區(qū)表和分區(qū)索引功能很成熟,可以提高用戶訪問db 的體驗。mysql 的分區(qū)表還不太成熟穩(wěn)定。13. 管理工具oracle 有多種成熟的命令行、圖

7、形界面、web 管理工具,還有很多第三方的管理工具,管理極其方便高效。mysql 管理工具較少,在linux 下的管理工具的安裝有時要安裝額外的包( phpmyadmin , etc) ,有一定復雜性。14. 技術支持oracle 出問題可以找客服mysq 出問題自己解決15. 授權oracle 收費mysq 開源-免費16. 選擇有錢用建議用oracle沒錢且能滿足需求建議用mysq。(阿里巴巴,wiki百科等大型項目也用了mysql ,人家主要用了分布式存儲、緩存、分表分庫等技術)二、以下是 oracle 和mysql的性能對比1 :服務器環(huán)境操作系統(tǒng): Red Hat Enterpris

8、e Linux Server release 5.5 (Tikanga)CPU: Intel(R) Xeon(R) CPU E5607 2.27GHz 8核內(nèi)存:16GMysql : Ver 14.14 Distrib 5.5.21, for Linux (x86_64)Oracle : Oracle Database 11g Enterprise Edition Release數(shù)據(jù)庫表t_bookBookID 書ID 整型 唯一索引BookName 書名稱200字符索引CategoryID 書分類ID整型 索引CategoryName 書分類名稱45字符索引SubCategoryID 書子分

9、類ID 整型SubCategoryName 書子分類名稱45字符CreateTime 書創(chuàng)建時間KeyWord 書標簽500字符索引Status書發(fā)布狀態(tài)1字符AuthorID 作者ID 整型AuthorName作者名稱50字符WordsCount 書字數(shù)整型Description 書簡介2000字符Price書價格整型NewChapterlD最新章節(jié)ID整型NewChapterName最新章節(jié)名稱100字符2 .測試結果插入 FYWR歸口講發(fā)每秒插入次 1369.804 oracle 510并發(fā)每秒插入次 #fcZ102556) ey嗎15cl并發(fā)每秒插入次數(shù) 4S41.9A) my5cli

10、5并發(fā)每秒插入次數(shù) 230fi.4161查詢 mysqlSCi謝發(fā)騫秒查詢次數(shù) 14D0.6E3) "的加5口由1發(fā)每秒查詢次<(2220 £6 2 2。仁0并度每秒查詢次數(shù) IC122.GS3力2匚后5并發(fā)每秒直詢決領 J4904.504更新巾丫劃5口0并發(fā)每秒更新次數(shù) 22B6Sfil) cracItSO 0并賽每秒更新次數(shù) 5511 63J) rnysq 13并注每秒更新次蚊 : 7,013 QB厄5。并發(fā)每秒更新次數(shù) (1321.357)刪除E弓印鉤口并發(fā)每秒刪除次數(shù) (2864.562 BMk 500并發(fā)每秒刪除次數(shù) 10B3B.03 eH鈍并發(fā)每秒刪除次數(shù)

11、 召36丸272 ork 5 口并發(fā)每秒刪除次數(shù) 融過02鑒于目前我們公司的項目需要,在項目初期可以采用mysql作為數(shù)據(jù)庫,mysql整體性能不差,且開源免費,應對百萬級的數(shù)據(jù)量沒有任何問題。但是考慮到項目后期 需要跟公安對接,目前這種大型的應用系統(tǒng)oracle還是主流,且oracle在分布式這一塊支持比較好,在處理千萬級甚至上億級的數(shù)據(jù)時可靠性和穩(wěn)定性更好,但是 oracle的收費優(yōu)點貴,建議后期采用 oracle.兩者對比表OracleMySql并 發(fā) 性oracle對并發(fā)性的支持要 很好。Mysql的并發(fā)性能良好,但是在 超大型數(shù)據(jù)量的情況下,比 oracle還是差,些。穩(wěn) 定 性or

12、acle在面對處理大型數(shù)據(jù)的時候穩(wěn)定性明顯優(yōu)于mysqlMysql需要投入大量的人力進行 研究和開發(fā)升級以保證處理大數(shù) 據(jù)量的時候的穩(wěn)定性事 務很早就完全支持事務在innodb存儲引擎的行級鎖的情況下才支持事務數(shù) 據(jù) 持 久 性保證提交的數(shù)據(jù)均可恢復, 因為oracle 把提交的sql操 作線寫入了在線聯(lián)機日志文 件中,保持到了磁盤上,如 果出現(xiàn)數(shù)據(jù)庫或主機異常重 啟,重啟后oracle可以考聯(lián) 機在線日志恢復客戶提交的 數(shù)據(jù)默認提交sql語句,但如果更新 過程中出現(xiàn)db或主機重啟的問 題,也許會丟失數(shù)據(jù)提 交方 式默認不自動提交,需要用戶 手動提交默認是自動提交邏 輯 備 份邏輯備份時不鎖定

13、數(shù)據(jù),且 備份的數(shù)據(jù)是一致的邏輯備份時要鎖定數(shù)據(jù),才能保 證備份的數(shù)據(jù)是一致的,影響業(yè) 務正常的dml使用熱 備 份oracle有成熟的熱備工具 rman,熱備時,不影響用戶 使用數(shù)據(jù)庫。即使備份的數(shù) 據(jù)庫不T,也可以在恢復 時通過歸檔日志和聯(lián)機重做 日志進行一致的回復。myisam的引擎,用mysql自帶 的mysqlhostcopy熱備時,需要給表加讀鎖,影響dml操作。innodb的引擎,它會備份 innodb的表和索引,但是不會 備份.frm文件。sql語 句的擴 展和靈 活性oracle在這方面感覺更加穩(wěn)重傳統(tǒng)一些mysql對sql語句有很多非常實 用而方便的擴展,比如limit功

14、能,insert可以一次插入多行 數(shù)據(jù),select某些管理數(shù)據(jù)可 以不加from復 制oracle既有推或拉式的傳統(tǒng) 數(shù)據(jù)復制,也有dataguard 的雙機或多機容災機制,主 庫出現(xiàn)問題是,可以自動切 換備庫到主庫,但配置管理 較復雜。mysql復制服務器配置簡單,但 主庫出問題時,叢庫有可能丟失 一定的數(shù)據(jù)。且需要手工切換叢 庫到主庫。性能診斷oracle有各種成熟的性能診 斷調優(yōu)工具,能實現(xiàn)很多自 動分析、診斷功能。比如awr、addm sqltrace、tkproof 等mysql的診斷調優(yōu)方法較少,主 要有慢查詢?nèi)罩緳?限oracle的權限與安全概念比mysql的用戶與主機后關,感覺與 安 全較傳統(tǒng),中規(guī)中矩沒有什么意義,另外更容易被仿 冒主機及ip有口乘之機分區(qū) 表和 分區(qū) 索引oracle的分區(qū)表和分區(qū)索引 功能很成熟,可以提高用戶 訪問db的體驗mysql的分區(qū)表還不太成熟穩(wěn)定管 理 工 具oracle有多種成熟的命令 行、圖形界面、

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論