我想測試InnoDB的行鎖怎麼測試不了呢?幫忙看下My Code沒錯吧?

來源:互聯網
上載者:User
$u = M('r.goods');$u->startTrans();$arr = $u->lock(true)->select(8);……

注意我沒有提交事務哦

現在的問題是:我要怎麼來測試鎖定呢?

網上說:“要測試鎖定的狀況,可以利用MySQL 的Command Mode ,開二個視窗來做測試。”

我開了兩個命令列視窗A和B,A視窗開啟事務,然後sql加鎖查詢,B視窗不進行任何操作,直接執行同樣的加鎖查詢,感受到了這個“鎖定等待”的狀態,沒有任何問題。

但是為什麼我上面寫的代碼同樣的沒有提交事務,為什麼重新整理兩次頁面沒有“鎖住,頁面卡主”的感覺啊,難道是php指令碼執行完後,所開啟的事務“自動失效”,還是什麼情況呢,還是我寫的代碼有問題,怎麼測試不出來跟命令列視窗中相同的效果呢?

還有一個疑問,我上面B視窗並沒有開啟事務,只是執行加鎖查詢,這樣也會受影響嗎?難道是加鎖需要在事務區塊中才會生效,而其他的查詢時不一定要在事務中是吧,只要是帶加鎖查詢的sql語句才會受上一個事務的影響是吧。

那為何我寫的代碼測試不出來這個效果呢?

回複內容:

$u = M('r.goods');$u->startTrans();$arr = $u->lock(true)->select(8);……

注意我沒有提交事務哦

現在的問題是:我要怎麼來測試鎖定呢?

網上說:“要測試鎖定的狀況,可以利用MySQL 的Command Mode ,開二個視窗來做測試。”

我開了兩個命令列視窗A和B,A視窗開啟事務,然後sql加鎖查詢,B視窗不進行任何操作,直接執行同樣的加鎖查詢,感受到了這個“鎖定等待”的狀態,沒有任何問題。

但是為什麼我上面寫的代碼同樣的沒有提交事務,為什麼重新整理兩次頁面沒有“鎖住,頁面卡主”的感覺啊,難道是php指令碼執行完後,所開啟的事務“自動失效”,還是什麼情況呢,還是我寫的代碼有問題,怎麼測試不出來跟命令列視窗中相同的效果呢?

還有一個疑問,我上面B視窗並沒有開啟事務,只是執行加鎖查詢,這樣也會受影響嗎?難道是加鎖需要在事務區塊中才會生效,而其他的查詢時不一定要在事務中是吧,只要是帶加鎖查詢的sql語句才會受上一個事務的影響是吧。

那為何我寫的代碼測試不出來這個效果呢?

大神在哪裡,大神在哪裡?,幫忙看下啊,為什麼我自己開啟多個頁面測試不出來鎖的效果呢?

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.