MYSQL中的鎖:
遂寧ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)建站的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!
語(yǔ)法 :
LOCK TABLE 表名1 READ|WRITE, 表名2 READ|WRITE .................. 【鎖表】
UNLOCK TABLES 【釋放表】
Read:讀鎖|共享鎖 : 所有的客戶端只能讀這個(gè)表不能寫這個(gè)表
Write:寫鎖|排它鎖: 所有當(dāng)前鎖定客戶端可以操作這個(gè)表,其他客戶端只能阻塞
注意:在鎖表的過(guò)程中只能操作被鎖定的表,如果要操作其他表,必須把所有要操作的表都鎖定起來(lái)!
PHP中的文件鎖 (鎖的是文件,不是表)
文件鎖的文件與表有什么關(guān)系?:一點(diǎn)關(guān)系也沒有,與令牌相似,誰(shuí)拿到誰(shuí)操作。所以表根本沒鎖。
測(cè)試時(shí),有個(gè)文件就行,叫什么名無(wú)所謂
在進(jìn)行數(shù)據(jù)表檢查或修補(bǔ)時(shí),可以先將數(shù)據(jù)表鎖定,可確保數(shù)據(jù)表的安全:
mysqlLOCK TABLE tbl_name READ;
mysqlFLUSH TABLES;
將數(shù)據(jù)表鎖定后再進(jìn)行檢查或修補(bǔ)的工作。完成后再解除鎖定:
mys()qlUNLOCK TABLES;
//LOCK TABLE tbl_name READ表示要鎖定成只讀狀態(tài),在這個(gè)狀態(tài)下用戶只能讀取數(shù)據(jù)表,不能寫入。
LOCK TABLE tbl_name WRITE則是更嚴(yán)格的鎖定,用戶不能讀取也不能寫入。
1、數(shù)據(jù)庫(kù)里有個(gè)東西叫鎖
2、在每個(gè)人操作表的時(shí)候,對(duì)表加鎖,這樣防止別人對(duì)表數(shù)據(jù)臟讀、臟寫
3、操作完成后,釋放鎖
4、小心,加鎖后可能會(huì)造成死鎖,特別是鎖過(guò)多的時(shí)候。
用鎖需謹(jǐn)慎,有風(fēng)險(xiǎn),但對(duì)數(shù)據(jù)來(lái)說(shuō)是安全的