Web站點,是MySQL最大的客戶羣,也是MySQL發展史上最爲重要的支撐力量。mysql
MySQL數據庫的安裝配置都很是簡單,使用過程當中的維護也不像不少大型商業數據庫管理系統那麼複雜,並且性能出色。 程序員
MySQL數據庫的插入和查詢性能都很是的高效,,對須要大量的插入和查詢日誌記錄的系統來講,MySQL是很是不錯的選擇。好比處理用戶的登陸日誌,操做日誌等,都是很是適合的應用場景。redis
隨着如今數據倉庫數據量的飛速增加,咱們須要的存儲空間愈來愈大。數據量的不斷增加,使數據的統計分析變得愈來愈低效,也愈來愈困難。sql
有幾個主要的解決思路:mongodb
一、一是採用昂貴的高性能主機以提升計算性能,用高端存儲設備提升I/O性能,效果理想,可是成本很是高;數據庫
二、二是經過將數據複製到多臺使用大容量硬盤的廉價pcserver上,以提升總體計算性能和I/O能力,效果尚可,存儲空間有必定限制,成本低廉;編程
三、經過將數據水平拆分,使用多臺廉價的pcserver和本地磁盤來存放數據,每臺機器上面都只有全部數據的一部分,解決了數據量的問題,全部pcserver一塊兒並行計算,也解決了計算能力問題,經過中間代理程序調配各臺機器的運算任務,既能夠解決計算性能問題又能夠解決I/O性能問題,成本也很低廉。windows
在上面的3個方案中,第2和第3個的實現,MySQL都有較大的優點。經過MySQL的簡單複製功能,能夠很好的將數據從一臺主機複製到另一臺,不只僅在局域網內能夠複製,在廣域網一樣能夠。 瀏覽器
嵌入式環境對軟件系統最大的限制是硬件資源很是有限,在嵌入式環境下運行的軟件系統,必須是輕量級低消耗的軟件。安全
MySQL在資源的使用方面的伸縮性很是大,能夠在資源很是充裕的環境下運行,也能夠在資源很是少的環境下正常運行。它對於嵌入式環境來講,是一種很是合適的數據庫系統,並且MySQL有專門針對於嵌入式環境的版本。
對於Oracle和MySQL數據庫用戶來講,MySQL使用一系統的受權表來管理和跟蹤用戶權限。當對用戶進行驗證、受權、訪問控制時,MySQL使用這些受權表。
與Oracle及其餘多數數據庫經過用戶名和密碼進行驗證的機制不一樣,MySQL使用附加的location參數對用戶時行驗證。這個location參數經查是主機名稱、IP地址或者爲一個通配字符串。經過這個附加的參數,MySQL能夠限制用戶訪問域中的某些主機。更進一步能夠作到經過不一樣的主機登錄時有不一樣的密碼和用戶權限。也就是說用戶名相同,但登錄主機的名稱不一樣時,多是不一樣的用戶。
MySQL的權限系統是經過繼承造成的分層結構。權限授於高層時,其餘低層隱式繼承被授於的權限,固然低層也可改寫這些權限。
按受權範圍不一樣,MySQL有如下種受權方式:
一、全局;
二、基於每一個主機;
三、基於表;
四、基於表列。
每一級在數據庫中都有一個受權表。當進行權限檢查時,MySQL從高到低檢查每一張表,低範圍受權優先於高範圍受權。
與Oracle不一樣,MySQL沒有角色的概念。也就是說,若是對一組用戶授於一樣的權限,須要對每個用戶分別受權。
模式包含表、視圖、索引、用戶、約束、存儲過程、觸發器和其餘數據庫相關的概念。多數關係型數據庫都有類似的概念。
本節包含如下內容:
一、模式對象的類似性;
二、模式對象的名稱;
三、表設計時的關注點;
四、多數據庫整合;
五、MySQL模式整合的關注點。
就模式對象,Oracle和MySQL存儲諸多的類似,但也有一些不一樣。
表3-1 模式對象
Oracle |
MySQL |
AFTER trigger |
trigger |
BEFORE trigger |
trigger |
Check constraint |
Check constraint |
Column default |
Column default |
Database |
Database |
Foreign key |
Foreign key |
Index |
Index |
Package |
N/A |
PL/SQL function |
Routine |
PL/SQL procedure |
Routine |
Primary key |
Primary key |
Role |
N/A |
Schema |
Schema |
Sequence |
AUTO_INCREMENT for a column |
Snapshot |
N/A |
Synonym |
N/A |
Table |
Table |
Tablespace |
N/A |
Temporary table |
Temporary table |
Trigger for each row |
Trigger for each row |
Unique key |
Unique key |
User |
User |
View |
View |
Oracle是大小寫不敏感的,而且模式對象是以在寫時行存儲。在Oracle的世界中,列、索引、存儲過程、觸發器以及列別名都是大小寫不敏感,而且在全部的平臺都是如此。MySQL是大小寫敏感的,如數據庫相對的存儲路徑、表對應的文件都是如此。
當把關鍵字用引號引發來時,Oracle和MySQL都容許把這些關鍵字用於模式對象。但MySQL對於一些關鍵字,不加引號也行。
本節主要討論當把MySQL轉爲Oracle時須要注意的地方。主要包含如下兩點:
一、字符數據的類型;
二、列默認值。
MySQL和Oracle在字符型數據保存和讀取上存在一些不一樣。MySQL的字符類型,如CHAR和VARCHAR的長度小於65535字節。Oracle支持4種字體類型:CHAR、NCHAR、NVARCHAR2和VARCHAR2。CHAR和NCHAR的最大長度爲2000字節,NVARCHAR2和VARCHAR2最大長度爲4000字節。
MySQL的CHAR在按必定長度存儲時,是用空格填充的右對齊方式,在讀取時去掉空格。
MySQL會處理列默認值,不容許他爲空,這點和Oracle不一樣。在Oracle中若是向表插入數據,須要對有全部不容許爲NULL列的值。
若是多個MySQL數據庫位於同一個數據庫服務上,支持遷移。
MySQL的數據庫對應於服務器上數據目錄內的了目錄,這一數據存儲方式與多數據數據庫不一樣,也包括Oracle。數據庫中的表對應一個或者多個數據庫目錄下的文件,並取表存儲時的存儲引擎。
一個Oracle數據庫包含一個或者多個表空間。表空間對應數據在磁盤上的物理存儲。表空間是從一個或者多個數據文件開始構建的。數據文件是文件系統中的文件或者原始存儲的一塊空間。