MySQL、Oracle與DB2資料庫差異
第一章:SQL執行差異
1.DB2資料庫
1.1使用者建立
#使用者名稱等1到8個字元 #DB2中使用者必須是個作業系統使用者(比如Windows和Linux使用者) #等同於在系統中建立使用者設定密碼(這點不同於oracle等資料庫) useradd -d /home/testuser -m testuser passwd testuser
1.2賦許可權
#檢視資料庫 dbdbname su - db2inst db2 list application #連線資料庫許可權授予、撤銷 db2 connect to dbdbname user db2inst using db2inst db2 GRANT dbadm ON DATABASE TO USER testuser; db2 REVOKE connect,resource,dba ON DATABASE FROM testuser;
1.3建立表空間
--刪除、建立自動儲存、註釋表空間 drop tablespace testuserdb; CREATE TABLESPACE testuserdb MANAGED BY AUTOMATIC STORAGE; COMMENT ONTABLESPACE testuserdb IS '表空間';
1.4建立schema
--查詢當前存在的Schema select * from syscat.schemata; --在不同使用者下建立與之相同的預設 schema DROP schema afa5 RESTRICT;CREATE schema testuser authorization testuser; --查詢、修改當前Schema(DB2資料庫中使用者與Schema沒有必然聯絡,設定給使用者設定一個與之相同的預設Schema) select current schema from sysibm.sysdummy1; SET CURRENT SCHEMA = 'testuser';
2.Oracle資料庫
2.1建立使用者、賦許可權、刪除使用者
https://www.cnblogs.com/ZhaoHS/p/10246064.html
3.MySQL資料庫
第二章:在使用與功能上的差異總結
編號 |
功能 |
MySQL |
DB2 |
1 |
賬號管理 |
資料庫使用者名稱+IP地址 |
作業系統使用者 |
2 |
許可權管理 |
可以批量grant與revoke |
只能單獨授權包括最小單元 |
3 |
日誌管理 |
歸檔日誌與事務日誌沒有關係 |
歸檔日誌由事務日誌產生 |
4 |
鎖的管理 |
MVCC實現鎖的併發控制 |
記憶體模型實現鎖的併發控制 |
5 |
schema的管理 |
每個schema為一個獨立的DB |
同一個DB內可以有多個schema |
6 |
表空間管理 |
無法條帶化、可管理、維護性較弱 |
管理方便、功能強大 |
7 |
資料備份 |
開源線上的備份工具少,傳統的備份只支援溫備份 |
備份方式嚴謹、功能強大 |
8 |
事務行為 |
回滾到上一個儲存點,不會回滾整個事務 |
整個事務進行回滾 |
9 |
資料恢復 |
支援在恢復時開啟資料庫,靈活 |
不支援在恢復或前滾時開啟資料庫 |
10 |
SQL支援 |
對複雜SQL支援較弱,在執行時可能會存在效能問題 |
支援各種複雜SQL,多種jion方式 |
11 |
Package支援 |
不支援 |
支援 |
12 |
語法差異 |
遵守SQL92標準,但細節上有差異、預設大小寫敏感 |
遵守SQL92標準,大小寫不敏感 |
13 |
容災與高可用 |
可選擇方案較多、靈活、可二次開發 |
只有HADR |
14 |
可擴充套件性 |
可選擇方案較多、靈活、可定製、可開發 |
只有PureScale |
15 |
DDL功能 |
支援指定位置加列、線上DDL |
不支援 |
引用:http://blog.chinaunix.net/uid-31518880-id-5782957.html
第三章:
待持續完善......