mysql的行鎖 表鎖 事務 儲存引擎

2021-06-27 14:35:09 字數 894 閱讀 9834

mysql的儲存引擎有:myisam、innodb、memory、mrg_myisam、archive等,其中myisam、innodb為最常用的兩種。

myisam:支援全文索引和表鎖,不支援外來鍵和事務,較適合資料量小的資料庫,若執行大量 的select,myisam是更好的選擇。

innodb:支援行級鎖、外來鍵、事務,資料量大得表較傾向於使用innodb,因為其支援事務處理、回滾和故障恢復(事務日誌進行資料恢復),如果myisam的話可能需要幾個小時或者幾天去恢復,但innodb可能只需要幾分鐘。不支援全文索引。

行鎖:innodb支援行鎖,有索引的時候就是行鎖,沒有索引的時候就是表鎖。

for update 僅適用於innodb,且必須在交易區塊(begin/commit)中才能生效。

事務:innodb支援事務。

分兩種形式:一種:begin;commit / rollback;       或者:set autocommit=0;commit / rollback; set autocommit=1;

mysql_query("begin"); //或者mysql_query("start transaction");

$sql = "insert into `user` (`id`, `username`, `***`) values (null, 'test1', '0')";

$sql2 = "insert into `user` (`did`, `username`, `***`) values (null, 'test1', '0')";//這條我故意寫錯

$res = mysql_query($sql);

$res1 = mysql_query($sql2);

if($res && $res1)else

mysql_query("end");

mysql事物鎖鎖表 mysql 事務 行鎖 表鎖

一 準備 select from information schema.innodb trx 查詢事務 select from information schema.innodb locks 查詢鎖 select from information schema.innodb lock waits 暫...

mysql塊鎖 mysql事務 表鎖 行鎖

mysql 使用select for update 做事務寫入前的確認 以mysql 的innodb 為例,預設的tansaction isolation level 為repeatable read,在select 的讀取鎖定主要分為兩種方式 select lock in share modese...

mysql 儲存過程 行鎖 mysql行鎖和表鎖

在呼叫儲存過程中,就會涉及到表鎖,行鎖這一概念 所謂區別 有索引的時候就是行鎖,沒有索引的時候就是表索。innodb 的行鎖是在有索引的情況下,沒有索引的表是鎖定全表的.表鎖演示 無索引 session1 mysql set autocommit 0 mysql select from innodb...