ホームページ  >  記事  >  データベース  >  mysqlのデッドロックを回避する方法

mysqlのデッドロックを回避する方法

青灯夜游
青灯夜游オリジナル
2019-05-22 18:29:228386ブラウズ

mysql デッドロックを回避する方法: 1. 固定された順序でテーブルと行にアクセスする; 2. 大規模なトランザクションはデッドロックに陥りやすくなります。ビジネスが許可する場合は、大規模なトランザクションを小さなトランザクションに分割します。トランザクションを実行する場合は、デッドロックの可能性を減らすために、必要なすべてのリソースを一度にロックしてみてください。4. 分離レベルを下げます。5. 適切なインデックスをテーブルに追加します。

mysqlのデッドロックを回避する方法

デッドロックをできる限り回避する方法:

1. 固定された順序でテーブルと行にアクセスします。たとえば、データを更新する 2 つのトランザクションの場合、トランザクション A は 1、2 の順序でデータを更新し、トランザクション B は 2、1 の順序でデータを更新します。これにより、デッドロックが発生する可能性が高くなります。

2. 大きなものを小さな部分に分割します。大規模なトランザクションはデッドロックになりやすいため、ビジネスが許可する場合は、大規模なトランザクションを小さなトランザクションに分割します。

3. 同じトランザクション内で、デッドロックの可能性を減らすために、必要なすべてのリソースを一度にロックするようにしてください。

4.分離レベルを下げます。ビジネスが許可する場合は、分離レベルを下げることも良い選択です。たとえば、分離レベルを RR から RC に調整すると、ギャップ ロックによって引き起こされる多くのデッドロックを回避できます。

5. テーブルに適切なインデックスを追加します。インデックスを使用しない場合、テーブルの各行にロックが追加され、デッドロックの可能性が大幅に増加することがわかります。

以上がmysqlのデッドロックを回避する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。