數據庫是按數據結構組織、儲存及管理資料的倉庫,早在六十多年前,隨著資訊科技及市場的發展,尤其是九十年代以后,數據管理已不再僅僅是儲存及管理資料,而是由使用者所需的各種數據管理方式。oracle和mysq數據庫都是大家熟知的,但是可能大家還是分不清它們兩個的區別,下面就讓小編為大家介紹數據庫oracle和mysql的區別。
數據庫oracle和mysql的區別
并發性是oltp數據庫的重要特征,但并發涉及到對資源的獲取、共享和鎖定。
mysql:
mysql主要使用表級鎖,資源鎖的粒度非常大,如果session在某個表鎖上太久,其他session就不能更新這個表中的數據。盡管InnoDB引擎的表可以使用行級鎖,但是這種行級鎖的機制依賴于一個表的索引,如果表沒有索引,或者sql語句沒有使用索引,仍然使用表級鎖。
oracle:
oracle使用行級鎖,資源鎖粒度小得多,只需鎖定sql需要的資源,加鎖在數據庫中的數據行上,不依賴于索引。因此,oracle對于并發性的支持非常好。
oracle:
oracle支持隔離級別的serializable,從而達到最高的讀取一致性。在每一個session提交之后,其他session才會看到提交的更改。oracle通過構造undo表空間中的多版本數據塊來實現讀取一致性,每次session查詢時,如果相應的數據塊改變,oracle將在undo表空間中為這個session構造查詢時構建一個舊數據塊。
mysql:
mysql沒有類似oracle構造多版本數據塊的機制,僅支持隔離級別的readcommited。當一個session讀取數據時,其他session不能改變數據,但是可以在最后插入數據。當session更新數據時,添加一個排它的鎖定,而其他session不能訪問數據。
最初,oracle完全支持交易。
mysql只支持innodb存儲引擎的行級鎖。
oracle
由于oracle將提交的sql操作線寫入在線在線日志文件,保證提交的數據都可以被恢復,并保存到磁盤上,若發生數據庫或主機異常重啟,重啟后oracle可考聯機日志來恢復客戶提交的數據。
mysql:
缺省提交sql語句,但是如果在更新期間db或主機重啟發生問題,可能會丟失數據。
oracle默認不自動提交,要求用戶手動提交。
mysql默認情況下為自動提交。
在邏輯備份時,oracle不會鎖定數據,備份的數據是一致的。
當mysql進行邏輯備份時,要鎖定數據,確保備份的數據是一致的,并且會影響正常業務的XML使用。
oracle有成熟的熱備工具rman,可以隨時準備,不會影響用戶使用數據庫。可以通過歸檔日志和在線重做日志在恢復時保持一致的回復,即使備份的數據庫不一致。
mysql:
myisam的引擎,當使用mysql自帶的mysqlhostcopy熱備份時,需要對表進行讀取,從而影響dml操作。
innodb的引擎,它備份了innodb的表和索引,但并不備份.frm文件。在使用ibbackup備份時,將有一個記錄備份過程中數據更改的日志文件,這樣就可以不鎖表而不影響其他用戶使用數據庫。但是這個工具需要付費。
innobackup是一個與ibbackup相結合的腳本,可以幫助.frm文件備份。
mysql對sql語句有許多非常實用和方便的擴展,比如limit功能,insert可以一次插入多行數據,select一些管理數據可以沒有from。
oracle覺得在這方面更沉穩傳統一些。
oracle:既有Published或rain的傳統數據復制,也有dataguard的雙機或多機容災機制,主庫的問題是,可以自動切換到主庫,但是配置管理比較復雜。
mysql:復制服務器配置很簡單,但是當主庫出現問題時,叢庫可能會丟失一些數據。并且需要將叢庫手動切換到主庫。
oracle提供了多種性能診斷調優工具,可以實現許多自動分析、診斷功能。例如awr,addm,sqltrace,tkproof,等等。
mysql的診斷調優方法很少,主要是緩慢的查詢日志。
mysql的用戶與主機相關,感覺沒什么意義,而且更容易被仿冒主機和ip所利用。
oracle的權限和安全概念比較傳統,不太規范。
oracle的區表和分區索引功能已經成熟,能夠改善用戶訪問db的體驗。
mysql的分區表尚未完全穩定。
oracle擁有許多成熟的命令行、圖形界面、web管理工具,以及許多第三方管理工具,管理極為方便高效。
mysql管理工具更少,而且在linux下安裝管理工具有時會帶有一些復雜性(phpmyadmin,etc)。
信息社會中對各種信息資源進行充分有效的管理與利用,是進行科學研究與決策管理的前提。在管理信息系統、辦公自動化系統、決策支持系統等各類信息系統中,數據庫技術是進行科研、決策管理的重要技術手段。以上就是小編為大家介紹的數據庫oracle和mysql的區別,希望能夠對大家有所幫助。
[免責聲明]
文章標題: 數據庫oracle和mysql的區別
文章內容為網站編輯整理發布,僅供學習與參考,不代表本網站贊同其觀點和對其真實性負責。如涉及作品內容、版權和其它問題,請及時溝通。發送郵件至36dianping@36kr.com,我們會在3個工作日內處理。