MySQL中的IS鎖是用于共享讀取的鎖,具有較低的優先級和阻塞能力。當多個事務需要同時讀取一個數據時,IS鎖可以允許多個事務同時讀取,而不會相互產生阻塞。
下面是IS鎖的一個示例:
-- session 1 BEGIN; SELECT * FROM my_table WHERE id=1 LOCK IN SHARE MODE; -- session 2 BEGIN; SELECT * FROM my_table WHERE id=1 LOCK IN SHARE MODE; -- session 3 BEGIN; UPDATE my_table SET value=2 WHERE id=1; COMMIT;
在上面的示例中,session1和session2都會獲得IS鎖,因為它們需要讀取my_table中的數據。
IS鎖的持有者可以與其他持有IS鎖的事務共同訪問同一行數據。但是,如果一個事務擁有一個排它鎖(X鎖),則其他事務將無法獲得IS鎖,直到排它鎖被釋放。
總之,IS鎖是一種適用于讀取操作的鎖,它可以在多個事務需要同時讀取同一個數據時提供較低的阻塞能力。
下一篇css 如何顯示更多