1. 程式人生 > >資料庫常用儲存引擎

資料庫常用儲存引擎

1、檢視引擎

show engines\G,show engine   //檢視可用的儲存引擎

show create table 表名\G      //查看錶使用的引擎

2、修改預設儲存引擎

vim /etc/my.cnf

--->[mysqld]

default-storage-engine=innodb/myisam

l 修改表使用的儲存引擎,或 建表時指定表使用的儲存引擎

alter  table  表   engine=儲存引擎名;

create  table  表(欄位列表)engine=儲存引擎名;

3、常用的儲存引擎

innodb

支援事務  、 事務回滾   、行級鎖  、外來鍵

儲存方式: 一個表對應2個儲存檔案

                 表名.frm    表結構

                 表名.ibd     資料和索引

myisam

不支援事務  、 事務回滾、外來鍵

支援表級鎖

儲存方式: 一個表對應3個儲存檔案

               表名.frm     表結構

                表名.MYD   資料

                表名.MYI     索引

4事務:對資料庫服務的訪問過程(連線資料庫伺服器    操作資料   斷開連 接)

事務回滾 : 在事務執行過程中,任何一步操作失敗,都會恢復之前的所有操 作。

鎖粒度:

表級鎖(myisam)給整張表加鎖

行級鎖 (innodb)    只給表中當前被操作行加鎖

鎖的作用:解決對錶的併發訪問衝突問題。

鎖型別

讀鎖  (共享鎖)

寫鎖  (互斥鎖)

建表時如何決定表使用那種儲存引擎

執行寫操作多的表適合使用innodb儲存引擎,可以併發訪問。

執行查操作多的表適合使用myisam儲存引擎,可以節省系統資源

5事務特性 (ACID)

Atomic :原子性 – 事務的整個操作是一個整體,不可分割,要麼全部 成功, 要麼全部失敗。

Consistency : 一致性 – 事務操作的前後,表中的記錄沒有變化。

Isolation :隔離性 – 事務操作是相互隔離不受影響的。

Durability :永續性

– 資料一旦提交,不可改變,永久改變表資料

mysql> show variables like "autocommit";  // 檢視提交狀態

mysql> set autocommit=off;  // 關閉自動提交

mysql> rollback ;  // 資料回滾

mysql> commit;  // 提交資料