【DB】MySQL和Oracle的區別

一、mysql與Oracle的相同點:

1、都是關係型數據庫管理系統(MySQL開放源碼)

2、都是目前很流行的數據庫(Oracle以分佈式爲核心);

二、MySQL、Oracle各自特點:

1、Oracle自身特點

(1)、完整的數據管理功能:

1)、數據的大量性;

2)、數據的保存的持久性;

3)、數據的共享性;

4)、數據的可靠性;

(2)、完備關係的產品 :

1)、信息準則---關係型DBMS的所有信息都應在邏輯上用一種方法,即表中的值顯式地表示;

2)、保證訪問的準則;

3)、視圖更新準則---只要形成視圖的表中的數據變化了,相應的視圖中的數據同時變化;

4)、數據物理性和邏輯性獨立準則;

(3)、分佈式處理功能: ORACLE數據庫自第5版起就提供了分佈式處理能力,到第7版就有比較完善的分佈式數據庫功能了,一個ORACLE分佈式數據庫由oraclerdbms、sql*Net、SQL*CONNECT和其他非ORACLE的關係型產品構成。

4、用Oracle能輕鬆的實現數據倉庫的操作

Oracle自身的優點

1、可用性強;

2、可擴展性強;

3、數據庫安全性強;

4、穩定性強;

MySQL自身特點

       MySQL因爲其速度、可靠性和適應性而備受關注。大多數人都認爲在不需要事務化處理的情況下,MySQL是管理內容最好的選擇。

三、兩者數據庫不同點:

1.單引號的處理 Mysql裏可以用雙引號包起字符串,Oracle裏只可以用單引號包起字符串。在插入和修改字符串前必須做單引號的替換:把所有出現的一個單引號替換成兩個單引號。

2.自動增長的數據類型處理 Mysql是一個自動增長的數據類型,插入數據的時候,不需要管理,它自己會自動增長,Oracle不支持自動增長的數據類型,通過建立一個自動增長的序列號來完成自動增長。

3.sql語句的擴展和靈活性 Mysql對sql語句有很多非常實用而方便的擴展,比如limit功能,insert可以一次插入多行數據,select某些管理數據可以不加from。 Oracle在這方面感覺更加穩重傳統一些。

4.事物提交方式 oracle默認不自動提交,需要用戶手動提交。 Mysql默認是自動提交。不支持事物。 Mysql默認自動提交,也就是你提交一個query,它就直接執行,我們可以通過

set autocommit=0 禁止自動提交
set autocommit=1 開啓自動提交

5.Oracle是大型數據庫而Mysql是中小型數據庫,Oracle市場佔有率達40%,Mysql只有20%左右,同時Mysql是開源的而Oracle價格非常高。
6. Oracle支持大併發,大訪問量,是OLTP(On-Line Transaction Processing聯機事務處理系統)最好的工具。
7. 安裝所用的空間差別也是很大的,Mysql安裝完後才152M而Oracle有3G左右,且使用的時候Oracle佔用特別大的內存空間和其他機器性能。
8. 長字符串的處理 長字符串的處理ORACLE也有它特殊的地方。INSERT和UPDATE時最大可操作的字符串長度小於等於4000個單字節, 如果要插入更長的字符串, 請考慮字段用CLOB類型,方法借用ORACLE裏自帶的DBMS_LOB程序包。插入修改記錄前一定要做進行非空和長度判斷,不能爲空的字段值和超出長度字段值都應該提出警告,返回上次操作。
9. 空字符的處理 Mysql的非空字段也有空的內容,ORACLE裏定義了非空字段就不容許有空的內容。按Mysql的NOT NULL來定義Oracle表結構, 導數據的時候會產生錯誤。因此導數據時要對空字符進行判斷,如果爲NULL或空字符,需要把它改成一個空格的字符串。
10.字符串的模糊比較 Mysql裏用 字段名 like ‘%字符串%’;
Oracle裏也可以用 字段名 like ‘%字符串%’ 但這種方法不能使用索引, 速度不快。
11.翻頁的SQL語句的處理
MySQL處理翻頁的SQL語句比較簡單,用LIMIT開始位置,記錄個數;PHP裏還可以用 SEEK定位到結果集的位置。Oracle處理翻頁的SQL語句就比較繁瑣了。每個結果集只有一個ROWNUM字段標明它的位置,並且只能用ROWNUM<100,不能用ROWNUM>80。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章