MySQL的讀鎖和解鎖

2021-07-25 21:12:05 字數 1159 閱讀 5534

讀鎖和解鎖其實只是一句sql語句,語法

lock/unlock   tables

tbl_name [[as] alias] lock_type

[, tbl_name [[as] alias] lock_type]等等

lock_type: 鎖型別

read [local]

| [low_priority] write

lock tables table_name read,那麼表示該table_name的表只能被讀而不能被寫,而此時插入資料時,會出現:

table 'user' was locked

with a read lock and can't be updated

想要寫的時候,可執行unlock tables,然後就可以插入資料了!

注意:user表必須為myisam表,以上測試才能全部ok,如果user表為innodb表,則lock tables user read

local命令可能沒有效果,也就是說,如果user表為innodb表,第6時刻將不會被阻塞,這是因為innodb表是事務型的,對於事務表,例如innodb和bdb,–single-transaction是乙個更好的選項,因為它不根本需要鎖定表。

如果乙個執行緒在乙個表上得到乙個 write 鎖,那麼只有擁有這個鎖的執行緒可以從表中讀取和寫表。其它的執行緒被阻塞。

寫鎖定的命令:lock tables user write.user表為myisam型別的表。

多表控制

//如 將 table1 設為read鎖, table2 設為write鎖, table3 設為read鎖

lock tables [table1] read,[table2] write,[table3] read;

把錶的讀寫鎖交給執行緒,讓執行緒來管理:

$db

->lock( 'user', 2 ); //2代表寫,1代表讀

sql語句的操作

$db->unlock(); //開鎖

此致,謝謝點讚!

mysql 解鎖語句 mysql鎖表和解鎖語句

對於mysql來說,有三種鎖的級別 頁級 表級 行級 頁級的典型代表引擎為bdb。表級的典型代表引擎為myisam,memory以及很久以前的isam。行級的典型代表引擎為innodb。我們實際應用中用的最多的就是行鎖。行級鎖的優點如下 1 當很多連線分別進行不同的查詢時減小lock狀態。2 如果出...

MYSQL鎖表和解鎖語句

對於mysql來說,有三種鎖的級別 頁級 表級 行級 頁級的典型代表引擎為bdb。表級的典型代表引擎為myisam,memory以及很久以前的isam。行級的典型代表引擎為innodb。我們實際應用中用的最多的就是行鎖。行級鎖的優點如下 1 當很多連線分別進行不同的查詢時減小lock狀態。2 如果出...

鎖表和解鎖

前端開發中工作專案融合了hibernate框架,導致在前端頁面對業務表資料進行操作時 執行資料庫插入 更新 刪除操作 容易導致資料庫鎖表。這裡直接提供鎖表查詢和解鎖對應的方法 1.下面的語句用來查詢哪些物件被鎖 select object name,machine,s.sid,s.serial fr...