給出以下幾種方案:
- 方案一:
delete from t limit 100000;
直接刪除 - 方案二:
delete from t limit 1000;
在for循環中執行100次 - 方案三:在100個連接中同時執行
delete from t limit 1000;
前面有說到,要盡量避免長連接,方案一事務較長,占用鎖時間長,可能會導致其他客戶端連接等待資源時間過長,甚至還有可能導致主從延遲。方案二,串行化執行,把長事務划分成短事務,每次事務占用鎖的時間會較短,其他連接等待時間也會相應縮短。將資源分片使用,每次執行使用不同片段(減小了鎖粒度)的資源,可以提高並發性。方案三會人為造成鎖沖突。