1.FLUSH TABLES WITH READ LOCK
這個指令是全局讀鎖定,執行了指令之後所有庫所有表都被鎖定隻讀。一般都是在資料庫聯機備份,這個時候資料庫的寫操作将被阻塞,讀操作順利進行。
解鎖的語句也是unlock tables
2.LOCK TABLES tabl_name[AS alias] {READ [LOCAL]|[LOW_PRIORITY]|WRITE}
這個指令是表級别的鎖定,可以定制鎖定某一個表。例如:lock tables test read;不影響其他表的寫操作
解鎖的語句也是unlock tables。
這兩個語句在執行的時候需要注意個特點,就是 隐式送出的語句。在退出mysql終端的時候都會隐式的執行unlock tables。 也就是如果要讓表鎖定生效必須一直保持對話。
read-lock:不允許其他發的讀和寫請求,但阻塞寫請求,既可以同時讀,但不允許任何寫。也叫共享鎖
write-lock:不允許其他并發的讀和寫請求,是排他的(exclusive)。也叫獨占鎖
本文轉自 xinsir999 51CTO部落格,原文連結:http://blog.51cto.com/xinsir/1665326,如需轉載請自行聯系原作者