資料庫常用儲存引擎
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; // 提交資料