讀鎖和解鎖其實只是一句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如果乙個執行緒在乙個表上得到乙個 write 鎖,那麼只有擁有這個鎖的執行緒可以從表中讀取和寫表。其它的執行緒被阻塞。local命令可能沒有效果,也就是說,如果user表為innodb表,第6時刻將不會被阻塞,這是因為innodb表是事務型的,對於事務表,例如innodb和bdb,–single-transaction是乙個更好的選項,因為它不根本需要鎖定表。
寫鎖定的命令: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...