關係型數據庫MySQL和SQL Server、Oracle的區別

MySQL

不支持事務處理、沒有視圖、儲存過程和觸發器(trigger),沒有數據庫端的用戶自定義函數,不能使用標準SQL語法。

SQL Server

它已廣泛應用於金融、保險、電力、行政管理等與數據庫有關的行業。由於其易操作性及友好的界面。它一般是和同是微軟產品的.net平臺一起搭配使用。

Oracle

能在所有主流平臺(VMS、DOS、UNIX、WINDOWS)上運行,提供高可用性和高伸縮性的簇的解決方案,擴展Windows NT的能力。Oracle良好的兼容性、可移植性、可連接性和高生產率是 Oracle RDBMS具有良好的開放性。Oracle價格是比較昂貴的。OLTP(On-Line Transaction Processing聯機事務處理系統)的最好工具。

 

Oracle:客戶端和命令窗口,都是由用戶決定內容-> conn user_name/password;

MySQL:客戶端和命令窗口,都是由數據庫決定內容-> use datebase;

  Oracle SQL Server MySQL
  一庫多用戶 中小企業 多庫多用戶
  大型數據庫(大併發,大訪問量) 高度集成化,中小型數據庫 中小型數據庫
收費 收費高 收費 開源
字符串拼接 || + concat()
空值處理數 Nvl() isnull() ifnull()
獲取系統時間 sysdate getdate() now()
日期格式化 to_char(sysdate,'yyyymmdd') convert(varchar(8),getdate(),112) date_format(xcs_received_date,'%Y%m%d')
主鍵自增長 使用序列自動增長 create table tb(id int identity(1,1) primary key )  create table tb(id int auto increment primary key )

大型數據庫的特點

海量數據、高吞吐量;複雜邏輯、高計算量,以及高可用性

lamp(Web應用軟件組合)

Linux+Apache+Mysql/MariaDB+Perl/PHP/Python一組常用來搭建動態網站或者服務器的開源軟件,本身都是各自獨立的程序,但是因爲常被放在一起使用,擁有了越來越高的兼容度,共同組成了一個強大的Web應用程序平臺。

用輕量級的Web 服務器(例如nginx,HTTP和反向代理服務器)高效,對於靜態文件的響應能力遠高於Apache服務器

 

  1. Oracle: 數據文件包括:控制文件、數據文件、重做日誌文件、參數文件、歸檔文件、密碼文件。這是根據文件功能行進行劃分,並且所有文件都是二進制編碼後的文件,對數據庫算法效率有極大的提高。由於Oracle文件管理的統一性,就可以對SQL執行過程中的解析和優化,指定統一的標準:
    RBO(基於規則的優化器)、CBO(基於成本的優化器)
    通過優化器的選擇,以及無敵的HINT規則,給與了SQL優化極大的自由,對CPU、內存、IO資源進行方方面面的優化。
  2. MySQL:最大的一個特色,就是自由選擇存儲引擎。每個表都是一個文件,都可以選擇合適的存儲引擎。常見的引擎有 InnoDB、 MyISAM、 NDBCluster等。但由於這種開放插件式的存儲引擎,比如要求數據庫與引擎之間的鬆耦合關係。從而導致文件的一致性大大降低。在SQL執行優化方面,也就有着一些不可避免的瓶頸。在多表關聯、子查詢優化、統計函數等方面是軟肋,而且只支持極簡單的HINT。
  3. SQL Server :數據架構基本是縱向劃分,分爲:Protocol Layer(協議層), Relational Engine(關係引擎), Storage Engine(存儲引擎), SQLOS。SQL執行過程就是逐層解析的過程,其中Relational Engine中的優化器,是基於成本的(CBO),其工作過程跟Oracle是非常相似的。在成本之上也是支持很豐富的HINT,包括:連接提示、查詢提示、表提示。

 

 

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