久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合

站長資訊網
最全最豐富的資訊網站

淺析php簡單操作mysql鎖機制

淺析php簡單操作mysql鎖機制

鎖機制
共享鎖與排他鎖
共享鎖(讀鎖):其他事務可以讀,但不能寫。
排他鎖(寫鎖) :其他事務不能讀取,也不能寫。

對于MySQL來說,有三種鎖的級別:頁級、表級、行級

  • 頁級的典型代表引擎為BDB。
  • 行級的典型代表引擎為INNODB。
  • 表級的典型代表引擎為MyISAM,MEMORY以及很久以前的ISAM。
  • BDB 存儲引擎采用的是頁面鎖(page-level locking),但也支持表級鎖
  • InnoDB 存儲引擎既支持行級鎖(row-level locking),也支持表級鎖,但默認情況下是采用行級鎖。
  • MyISAM 和 MEMORY 存儲引擎采用的是表級鎖

相關免費學習推薦:php編程(視頻)

1、MyISAM 表鎖

MyISAM表級鎖模式:

  • 表共享讀鎖 (Table Read Lock):不會阻塞其他用戶對同一表的讀請求,但會阻塞對同一表的寫請求;
  • 表獨占寫鎖 (Table Write Lock):會阻塞其他用戶對同一表的讀和寫操作;

MyISAM加表鎖方法:

  • 用 LOCK TABLE 命令給 MyISAM 表顯式加鎖
  • LOCK TABLES real_table (READ|WRITE), insert_table (READ|WRITE); //加鎖
  • UNLOCK TABLES; //解鎖

列子:
比如有 account(id,name,cash),hero(number,name,country)這兩張表

  1. lock tables account read; 將account加為只讀鎖
    當前進程查詢:select * from hero;會報Table ‘hero’ was not locked with LOCK TABLES。
    當前進程更改其他表:update hero set name=“ss” where number=1; 會報Table ‘hero’ was not locked with LOCK TABLES
    當前進程更改表:update account set name=“ssss” where id=1;會報Table ‘account’ was locked with a READ lock and can’t be updated
    如果別mysql進程進來,可以查詢其他表和account,但不能更改account,會一直等待,需要釋放鎖才執行

1.1PHP操作

<?php/**  * Created by PhpStorm.  * User: Administrator  * Date: 2021/4/29 0029  * Time: 11:20  */$link = new mysqli('127.0.0.1', 'root', '123', 'db_school'); // 連接數據庫if(mysqli_connect_errno()){                                // 檢查連接錯誤     printf("連接失敗:%s<br>", mysqli_connect_error());     exit();}//(s1)$table = "account";$type = "read";$sql1 = "LOCK TABLES $table $type";$link->query($sql1);//處理邏輯//$sql1 = "select * from $table;";        //(s1)true//$sql1 = "select * from hero;";        //false//$sql1 = "update hero set name='ss' where number=1; ";     //false$sql1 = "update account set name='ssss' where id=1;";   //false$result = $link->query($sql1);var_dump($result);sleep(20);  //測試    //假設還沒釋放鎖,開啟cmd進mysql(s2)可以查詢,但不能執行更改和刪除操作,會等待這邊釋放鎖$link->query("unlock tables");    //取消全部的鎖//解鎖后正常操作//$result = $link -> query($sql1);//var_dump($result);$link->close();

查詢表級鎖爭用情況
show status like ‘Table%’;

  • Table_locks_immediate 指的是能夠立即獲得表級鎖的次數
  • Table_locks_waited 指的是不能立即獲取表級鎖而需要等待的次數

2.InnoDB加鎖方法:

對于普通 SELECT 語句,InnoDB 不會加任何鎖;只能在事務執行過程中使用加鎖
鎖只有在執行commit或者rollback的時候才會釋放,并且所有的鎖都是在同一時刻被釋放。

  • 共享鎖(S):SELECT * FROM table_name WHERE … LOCK IN SHARE MODE。其他 session 仍然可以查詢記錄,并也可以對該記錄加 share mode 的共享鎖。但是如果當前事務需要對該記錄進行更新操作,則很有可能造成死鎖。大家都能讀,但是不能改,只有其中一個獨占共享鎖時候才能改;
  • 排他鎖(X):SELECT * FROM table_name WHERE … FOR UPDATE。其他 session 可以查詢該記錄,但是不能對該記錄加共享鎖或排他鎖,而是等待獲得鎖。我要改,你們都不能改,也不能讀
    #select … lock in share mode //共享鎖
    #select … for update //排他鎖
    ##在 MySQL 8.0 中
  • 共享鎖(S):SELECT * FROM table_name WHERE … FOR SHARE
  • 排他鎖(X):SELECT * FROM table_name WHERE … FOR UPDATE[NOWAIT|SKIP LOCKED]
    –NOWAIT:發現有鎖等待后會立即返回錯誤,不用等待鎖超時后報錯。
    –SKIP LOCKED:跳過被鎖定的行,直接更新其他行,但是這樣要注意是否會造成更新結果不符合預期。

2.1PHP操作

<?php/**  * Created by PhpStorm.  * User: Administrator  * Date: 2021/4/29 0029  * Time: 10:06  */$link = new mysqli('127.0.0.1', 'root', '123', 'db_school'); // 連接數據庫if(mysqli_connect_errno()){                                // 檢查連接錯誤     printf("連接失敗:%s<br>", mysqli_connect_error());     exit();}//案例1$id = 1; //明確指定主鍵,并且有此數據,row lock (行鎖)//$id = -1;   //明確指定主鍵,若查無此數據,無lock (無鎖)$link->autocommit(0);                   // 開始事務(s1)//FOR UPDATE僅適用于InnoDB,且必須在交易區塊(BEGIN/COMMIT)中才能生效。$sql = "select * from account where id=$id for update";$link->query($sql);/***  * 此時其他mysql進程可以查詢該記錄,但是不能對該記錄加共享鎖或排他鎖,而是等待獲得鎖。  *///(s1)可以進行更改,和查詢等操作//$sql1 = "update account set name='aaa' where id=$id;";  //進行更改//$sql1 = "select * from account where id=$id;";  //進行查詢$sql1 = "delete from account where id=$id;";  //進行刪除$result = $link -> query($sql1);var_dump($result);sleep(20); //測試    //假設還在事務處理中,開啟cmd進mysql(s2)執行更改和刪除操作,會等待這邊釋放鎖$link->commit();$link->close();

查看正在被鎖定的的表
show OPEN TABLES where In_use > 0;
SHOW PROCESSLIST顯示哪些線程正在運行。

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合
亚洲丝袜美腿一区| 国语精品一区| 国产欧美一区| 日韩av不卡在线观看| 日韩中文欧美在线| 老牛影视一区二区三区| 一级欧美视频| 日本不卡视频一二三区| 欧美日韩亚洲国产精品| 国产精品一区高清| 麻豆视频一区二区| 精品国产亚洲日本| 麻豆视频在线观看免费网站黄 | 久久久天天操| 欧洲亚洲一区二区三区| 91精品一区国产高清在线gif| 日韩高清成人| 亚洲成人三区| 亚洲在线国产日韩欧美| 日韩一区精品视频| 日本久久一区| 成人亚洲一区| 国产亚洲精品v| 国产精品一区二区三区四区在线观看| 精品三级国产| 黄色国产精品| 88久久精品| 人人草在线视频| 亚洲午夜一级| 蜜臀精品一区二区三区在线观看| 日韩一区网站| 成人看片网站| 免费成人在线观看| 国产精品精品国产一区二区| 欧美日韩中文一区二区| 免费在线观看不卡| 免费看久久久| 免费人成在线不卡| 国产精品99在线观看| 蜜臀久久久99精品久久久久久| 另类综合日韩欧美亚洲| 伊人久久亚洲美女图片| 国产精品一区三区在线观看| 四虎884aa成人精品最新| 爽好多水快深点欧美视频| 国产欧美日韩免费观看| 欧美精品一卡| 樱桃视频成人在线观看| 欧美一级网站| 欧美亚洲福利| 亚洲久草在线| 美女福利一区二区三区| 亚洲精品免费观看| 蜜桃国内精品久久久久软件9| 欧美黑人巨大videos精品| 亚洲一区欧美激情| 日韩电影二区| 精品视频一二| 国产欧美在线| 亚洲无线观看| 日本不卡高清| 国产亚洲一卡2卡3卡4卡新区| 欧美啪啪一区| 久久免费福利| 国产精品成久久久久| 电影亚洲精品噜噜在线观看| 国产不卡av一区二区| 亚洲女同av| 国产视频一区三区| 久久精品青草| 夜夜嗨av一区二区三区网站四季av| 亚洲专区一区| 卡一卡二国产精品| 国产欧美三级| 国产不卡一区| 亚洲婷婷免费| 亚洲在线久久| 国产欧美在线观看免费| 日韩成人精品一区| 香蕉人人精品| 亚洲精品观看| 国产在线观看91一区二区三区| 欧美精品一区二区三区精品| 蜜桃视频一区二区三区| 国产精品一线| 丝袜美腿一区| 国产精品日韩| 开心激情综合| 今天的高清视频免费播放成人| 亚洲欧美日韩在线观看a三区 | 日韩高清欧美激情| 国产成人1区| 蘑菇福利视频一区播放| 国产精品久久久久9999高清| 伊人久久大香线蕉av不卡| 日韩精品一区二区三区中文字幕| 欧美国产小视频| 亚洲精品乱码久久久久久蜜桃麻豆| 精品免费av一区二区三区| 天堂va在线高清一区| 国产一区成人| 国产在线观看www| 久久影院午夜精品| 免费看日韩精品| 精品亚洲免a| 丝袜美腿亚洲色图| 国产精品99久久免费| 午夜欧美精品久久久久久久| 国产精品三级| 欧美精品一区二区三区精品| 国产精品亚洲欧美日韩一区在线| 99久精品视频在线观看视频| 日本v片在线高清不卡在线观看| 日韩不卡视频在线观看| 欧美日韩xxxx| 欧美日韩国产探花| 欧美偷窥清纯综合图区| 欧美精品日日操| 日韩在线网址| 亚洲一区二区动漫| 成人福利av| 美女精品视频在线| 日韩精品久久久久久久软件91| 久久三级视频| 精品亚洲a∨一区二区三区18| 91国内精品| 日韩中出av| 综合欧美精品| 日韩中文字幕一区二区三区| 日韩不卡在线| 久久精品在线| 老司机免费视频一区二区三区| 日韩精品一二三区| 性欧美精品高清| 久久五月天小说| 精品中文字幕一区二区三区av| 在线亚洲人成| 亚洲精品在线影院| 日韩免费在线| 免费久久久久久久久| 欧美日韩四区| 日韩精品一级中文字幕精品视频免费观看| 亚洲福利久久| 日韩网站在线| 日韩欧美美女在线观看| 国产精品一区二区三区av| 欧美三区不卡| 啪啪亚洲精品| 久久精品天堂| 国产精品伦理久久久久久| 中文另类视频| 美国欧美日韩国产在线播放| 亚洲精品成人一区| 久久av影院| 欧美特黄一级大片| 日韩专区欧美专区| 国产午夜久久av| 国产超碰精品| 亚洲v天堂v手机在线| 老司机精品视频网| 欧美日韩国产在线观看网站| 中文字幕日韩亚洲| 日本欧美在线| 精品视频91| 免费日韩av片| 国产欧美日韩视频在线 | 欧美日韩国产亚洲一区| 日韩黄色av| 日韩不卡在线| 亚洲毛片网站| 成人在线视频区| 国产亚洲福利| 不卡一二三区| 欧美日韩中文| 欧美精品一二| 麻豆国产欧美一区二区三区| 成人av动漫在线观看| 国产精品porn| 爽爽淫人综合网网站| 日韩福利一区| 麻豆一区二区三| 天使萌一区二区三区免费观看| 久久久91麻豆精品国产一区| 一区二区三区四区日韩| 91精品在线观看国产| 欧美成人一二区| 日韩精品欧美精品| 亚洲欧美日本国产专区一区| 欧美羞羞视频| 麻豆国产一区| 国产精品网站在线看| 综合一区av| 好看不卡的中文字幕| 美女福利一区二区三区| 国产精品mv在线观看| 日本不卡一区二区三区| 鲁大师成人一区二区三区| 久久在线免费| 久久国产欧美| 麻豆mv在线观看|