FLUSH TABLES WITH READ LOCK 和 LOCK TABLES比較

一、FLUSH TABLES WITH READ LOCKmysql

這個命令是全局讀鎖定,執行了命令以後全部庫全部表都被鎖定只讀。通常都是用在數據庫聯機備份,這個時候數據庫的寫操做將被阻塞,讀操做順利進行解鎖的語句也是unlock tables。sql

二、LOCK TABLES tbl_name [AS alias] {READ [LOCAL] | [LOW_PRIORITY] WRITE}數據庫

這個命令是表級別的鎖定,能夠定製鎖定某一個表。例如: lock  tables test read; 不影響其餘表的寫操做。解鎖語句也是unlock tables。併發

這兩個語句在執行的時候都須要注意個特色,就是 隱式提交的語句。在退出mysql終端的時候都會隱式的執行unlock tables。也就是若是要讓表鎖定生效就必須一直保持對話。spa

三、MYSQL的read lock和wirte lockit

read-lock:  容許其餘併發的讀請求,但阻塞寫請求,便可以同時讀,但不容許任何寫。也叫共享鎖table

write-lock: 不容許其餘併發的讀和寫請求,是排他的(exclusive)。也叫獨佔鎖class

相關文章
相關標籤/搜索