因為在實際項目中,會有大量的用戶鏈接數據庫並請求各種操作,此時我們就需要對各個請求創建線程進行處理,這時候問題就來了,當大家的請求都涉及到寫數據庫時候,怎麼辦?這個時候就要用到數據庫的加鎖了。具體數據庫的加鎖知識大家可以百度之,不過這裡不需要太多高深的加鎖知識,只需要一點就是寫鎖
寫鎖是神馬捏?具體來說就是一種排他鎖,當寫的時候不允許其他程序寫,這樣就可以保證數據一致性了。OK了,這就夠了,在程序中怎樣對數據庫進行加鎖呢?
數據庫的加鎖是在我們寫數據庫的時候進行的,當然現在很多數據庫都自己帶了枷鎖機制,但是當我們具有大量並發的時候還是自己寫著比較好
C#對MySQL進行操作上一篇已經說了,這裡直接進行說明怎樣進行加鎖
代碼如下:
string lockDB = "LOCK TABLE t_userinfo WRITE"; MySQLCommand sqlcmd = new MySQLCommand(lockDB, conn); sqlcmd.ExecuteReaderEx(); string cmd = "update t_userinfo set F_State = 0 where F_Name= '" + name + "'"; sqlcmd = new MySQLCommand(cmd, conn); sqlcmd.ExecuteReaderEx(); string UnlockDB = "UNLOCK TABLES"; sqlcmd = new MySQLCommand(UnlockDB, conn); sqlcmd.ExecuteReaderEx();
注意的是,當加鎖完成後一定要解鎖啊