1. 程式人生 > 實用技巧 >MySQL、Oracle與DB2資料庫差異

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

第三章:

待持續完善......