innodb和myisam引擎的區別和事務

2021-09-28 20:37:15 字數 1292 閱讀 5229

#列出可用的儲存引擎型別

show engines;

#建立表時設定儲存引擎

create table aaa(…)engine=儲存引擎;

#修改已有表引擎

alter table 表名 engine=儲存引擎名;

#設定永久預設許可權(/etc/my.cnf)

default-storage-engine=儲存引擎

主要特點

支援表級鎖(當使用者讀寫資料時整張表不能被其他人訪問

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

表檔案 表名.frm #表結構

表名.myi #索引

表名.myd #資料

主要特點

支援行級鎖定

支援事務、事務回滾、外建

表檔案表名.frm #表結構

表名.ibd #表資料

事務日誌檔案(在資料庫目錄下預設為/var/lib/mysql)

ibdata1

ib_logfile0

ib_logfile1

#事務日誌是資料庫中已發生的所有修改和執行每次修改的事務的一連串記錄。事務日誌記錄每個事務的開始。它記錄了在每個事務期間,對資料的更改及撤消所做更改(以後如有必要)所需的足夠資訊。主要是恢復時用到資料,所以對日誌檔案不能輕易刪除!

鎖粒度

表級鎖:對整張表加鎖

行級鎖:僅對被訪問的行分別加鎖

鎖型別 讀鎖(共享鎖):支援併發讀

寫鎖(互斥鎖、排它鎖):是獨佔鎖,上鎖期間其它執行緒不能讀表或寫表

檢視當前鎖狀態

show status like "table_lock%";

#當對乙個表做出操作,到提交的過程叫事務

#檢視提交狀態(預設為on關閉的話設定成off)

show variables like 「autocommit」;

#關閉自動提交

set autocommit=off;

#資料回滾

rollback;

#提交資料

commit;

atomic:原子性

事務的整個操作是乙個整體,不可分割,要麼全部成功,要麼全部失敗

consistency:一致性

事務操作的前後,表中的記錄沒有變化

isolation:隔離性

事務操作是相互隔離不受影響的

durability:永續性

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

Mysql引擎 Innodb和MyISAM的區別

本文是摘抄其他網文整理而成。create database engine innodb mysql 資料庫分為innodb和myisam兩類。兩者最主要的區別是 innodb支援事務處理 外來鍵和行級鎖.而myisam不支援,所以如果cud比較頻繁或要求事務一致性的,使用innodb比較好,反之使用...

InnoDB和MyISAM儲存引擎

mysql在檔案系統中將每個資料庫 也可以叫 schema 儲存為資料庫目錄下的乙個子目錄。建立表時,mysql會在資料庫子目錄下建立乙個和表同名的.frm檔案儲存表的定義。而 mysql會在資料庫子目錄下建立乙個和表同名的.frm檔案儲存表的定義。如 建立乙個名為a的表,mysql會在a.frm檔...

MyISAM和InnoDB引擎優化

一 公共選項 skip external locking 避免mysql的外部鎖定,減少出錯機率增強穩定性。skip name resolve 禁止mysql對外部連線進行dns解析,使用這一選項可以消除mysql進行dns解析的時間。但需要注意,如果開啟該選項,則所有遠端主機連線授權都要使用ip位...