欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

mysql 查詢結果行數(shù),MySQL中的行級鎖表級鎖頁級鎖

錢諍諍2年前22瀏覽0評論
mysql 查詢結果行數(shù),MySQL中的行級鎖表級鎖頁級鎖?

1. 程序中非數(shù)據(jù)庫交互操作導致事務掛起

將接口調用或者文件操作等這一類非數(shù)據(jù)庫交互操作嵌入在 SQL 事務代碼之中,那么整個事務很有可能因此掛起(接口不通等待超時或是上傳下載大附件)。

2. 事務中包含性能較差的查詢 SQL

事務中存在慢查詢,導致同一個事務中的其他 DML 無法及時釋放占用的行鎖,引起行鎖等待。

3. 單個事務中包含大量 SQL

通常是由于在事務代碼中加入 for 循環(huán)導致,雖然單個 SQL 運行很快,但是 SQL 數(shù)量一大,事務就會很慢。

4. 級聯(lián)更新 SQL 執(zhí)行時間較久

這類 SQL 容易讓人產(chǎn)生錯覺,例如:update A set ... where ...in (select B) 這類級聯(lián)更新,不僅會占用 A 表上的行鎖,也會占用 B 表上的行鎖,當 SQL 執(zhí)行較久時,很容易引起 B 表上的行鎖等待。

5. 磁盤問題導致的事務掛起

極少出現(xiàn)的情形,比如存儲突然離線,SQL 執(zhí)行會卡在內核調用磁盤的步驟上,一直等待,事務無法提交。

綜上可以看出,如果事務長時間未提交,且事務中包含了 DML 操作,那么就有可能產(chǎn)生行鎖等待,引起報錯。