關係型資料庫(Oracle與MySQL優缺點、使用區別)
MySQL的特點
1、效能卓越,服務穩定,很少出現異常宕機;
2、開放原始碼無版本制約,自主性及使用成本低;
3、歷史悠久,社群和使用者非常活躍,遇到問題及時尋求幫助;
4、軟體體積小,安裝使用簡單且易於維護,維護成本低;品牌口碑效應;
5、支援多種OS,提供多種API介面,支援多種開發語言,對流行的PHP,Java很好的支援
MySQL的缺點
1、MySQL最大的缺點是其安全系統,主要是複雜而非標準,另外只有到呼叫mysqladmin來重讀使用者許可權才會發生改變;
2、MySQL的另一個主要的途徑之一是缺乏標準的RI(Referential Integrity-RI)機制,RI限制的缺乏(在給定欄位域上的一種固定的範圍限制)可以通過大量的資料型別來補償;
3、MySQL不支援熱備份;
Oracle的特點
1、相容性:Oracle產品採用標準SQL,並經過美國u構架標準技術所(NIST)測試,與IBM SQL/DS、DB2、INGRES、IDMS/R等相容。
2、可移植性:Oracle的產品可運行於很寬範圍的硬體與作業系統平臺上。可以安裝在多種 大、中、小型機上,可在多種作業系統下工作。
3、可聯結性:Oracle能與多種通訊網路相連,支援各種協議。
4、高生產率:Oracle產品提供了多種開發工具,能極大地方使使用者進行進一步的開發。
5、開放性:Oracle良好的相容性、可移植性、可連線性和高生產率使Oracle RDBMS具有良好的開放性。
Oracle的缺點
1、對硬體要求很高;
2、價格比較昂貴;
3、管理維護麻煩一些;
4、操作比較複雜,需要技術含量高;
MySQL與Oracle的應用區別
1、主鍵的使用:
MySQL:一般使用自動增長型別,在建立表的時候只要指定表的主鍵為auto increment,插入記錄時就不需要再為主鍵新增記錄了,主鍵會自動增長;
Oracle:沒有自動增長,主鍵一般使用序列,插入記錄時將序列號的下一值付給該欄位即可,只是ORM框架只是需要native主鍵生成策略即可。
2、長字串的處理
長字串的處理ORACLE也有它特殊的地方。INSERT和UPDATE時最大可操作的字串長度小於等於4000個單字元,
如果要插入更長的字串,請考慮欄位用CLOB型別,方法借用ORACLE裡自帶的DBMS_LOB程式包。插入修改記錄前一定要做進行非空和長度判斷,不能為空的欄位值和超出長度值都應該提出警告,返回上次操作。
3、模糊查詢的比較
MySQL:用欄位名like%'字串%'
Oracle:也可以用欄位名like%'字串%'但這種方法不能使用索引,速度不快,用字串比較函式
isnert(欄位名,‘字串’)>0會得到更精確的查詢結果
4、空字串的比較:
MySQL的非空欄位也有空的內容,Oracle裡定義了非空欄位就不容許有空的內容。按MySQL的not null來定義Oracle表結構。
導資料的時候就會產生錯誤。因此導資料時對空字元進行判斷,如果為Null或空字元,需要把它改成一個空格的字串。
5、單引號的處理
MySQL裡可以用雙引號包起字串,Oracle裡只可以用單引號包起字串,在插入和修改字串前必須做單引的替換;
把所有出現的一個單引號替換成兩個單引號