mysql儲存引擎,事務,事務回滾

2022-06-25 16:48:09 字數 2121 閱讀 3511

檢視已有表的使用儲存引擎:

>show create table 表名\

g;檢視當前資料庫的預設儲存引擎和可提供的儲存引擎:

>show engines;

修改儲存引擎:

step1:修改配置檔案/etc/my.cnf

default_storage_engine=儲存引擎

step2:重啟mysqld服務

修改表的儲存引擎:

alter table 表名  engine=儲存引擎;

建立表時指定儲存引擎:

create table 表名 (字段 型別)engine=儲存引擎;

常用的儲存引擎:

innodb:支援外來鍵,事務,事務回滾,行級鎖

表檔案:**.frm(表結構)     **.ibd(資料和索引)

myisam:不支援外來鍵,事務,事務回滾,表級鎖

表檔案:**.frm (表結構)  **.myd(表資料)**myi(索引資訊)

鎖粒度:

表級鎖:一次直接對整張表進行加鎖

頁級鎖:對整個頁面進行加鎖

行級鎖:只鎖定某一行

鎖型別:show status like "table_lock%";

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

寫鎖:(排它鎖,互斥鎖)獨佔,上鎖期間其他的執行緒不能進行讀表和寫表。

事務:一次資料庫連線到操作到結束的過程(只針對於表中資料)

事務回滾:在訪問過程中,任意一步操作失敗,都可恢復之前的所有操作。

事務日誌:記錄對所有innodb儲存引擎表的操作      ibdata1:未提交的命令

ib_logfile0,ib_logfile1:已提交完成的命令

事務特性:

a:原子性   整個操作是乙個整體,不可分割,要麼成功,要麼失敗

c:一致性  事務操作前後各個終端的資料記錄無變化

i:隔離性   事務在未提交之前,各個終端相互隔離,互不影響

d:永續性  資料事務一旦提交,不可恢復

mysql>show variables like "autocommit";

mysql>set autocommit=off;                                關閉自動提交,預設為自動提交

mysql>rollback;                     //回滾

mysql>commit;                      //提交

在未提交之前各個終端看到的資料是不一樣的。只針對於表中的資料

select操作多的表,使用於myisam儲存引擎,節約系統資源

insert操作多的表,使用於innodb儲存引擎,併發訪問量大

MySQL儲存過程事務回滾

sql過程 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 delimiter createdefiner root localhost procedure test procedure begin declareerrnoint declarecontinueh...

mysql事務回滾

先收集網上的一些,待仔細測試研究 事務是資料庫更新操作的基本單位,事務回滾是指將該事務已經完成的對資料庫的更新操作撤銷。所謂事務是使用者定義的乙個資料庫操作序列,這些操作要麼全做要麼全不做,是乙個不可分割的工作 單位。例如,在關聯式資料庫中,乙個事務可以是一條sql語句 一組sql語句或整個程式。簡...

MySQL之鎖 儲存引擎 調優 事務與事務回滾

目的 解決客戶端併發訪問的衝突問題 鎖有兩種 鎖型別和鎖粒度 鎖型別 讀鎖 也叫共享鎖,用於查詢表。在你查詢時會對錶加鎖,此時別人是不能對錶記錄進行更改的,只能查詢,當你查詢結束,鎖就會解開,別人才可以進行更改。寫鎖 也叫互斥鎖 排他鎖,用於更新表,當你在更新表記錄會對錶加鎖,此時別人既不能查也不能...