ホームページ  >  記事  >  バックエンド開発  >  複数のユーザーが同時にテーブルを操作する場合の問題

複数のユーザーが同時にテーブルを操作する場合の問題

WBOY
WBOYオリジナル
2016-06-23 13:47:531282ブラウズ

質問する
例えば、会員番号テーブルのidカードn(会員番号)uidカードnが031001、031002のように連続している場合、ボタンをクリックして5つのレコードを追加する機能があり、それらは連続しているので、毎回取得する必要がある 最新のメンバー番号を基にして 5 つの連続する番号が生成され、データベースに挿入されます。問題は、複数のユーザーがこのテーブルを同時に操作すると、毎回最新のレコードが取得されることです。を連続して使用すると正確ではありません。この問題の解決方法を教えてください


ディスカッション (解決策) に返信

トランザクションを開始できます。

5 人のユーザーが同時にテーブルを操作すると、常に mysql トランザクション処理を参照できます。操作が完了すると、他のユーザーがテーブルをロックします。運営を続けます。
同時実行性が大きい場合は、データベース テーブルへの負荷を軽減するために memcache キューを使用することをお勧めします。

キュー処理を使用します

5 人のユーザーが同時にテーブルを操作する場合、ユーザーがテーブルを操作すると、テーブルは常にロックされます。完了、その他 ユーザーは操作を続行します。
同時実行性が大きい場合は、データベース テーブルへの負荷を軽減するために memcache キューを使用することをお勧めします。

他の多くの操作でこのテーブルが使用されますか?

処理にキュー フォームを使用しますか?

まず、ロックを解除しますか?

テスト: http://koda.iteye.com/blog/471713


サービスの利用方法
まず登録し、処理後に予約をキャンセルしてください。

テスト: http://koda.iteye.com/blog/471713

投稿してポイントを与えていただきありがとうございます



案件を使用してください

最初にリストしてから、処理後に予約をキャンセルしてください。 ?テスト: http://koda.iteye.com/blog/471713

データベース内の現在のテーブルはすべて MyISAM タイプであり、ロック解除の形式でロックされたテーブルを使用する場合は、他の操作が必要になります。このテーブルにアクセスするときに影響を受けますか? たとえば、テーブルをロックするときに、このテーブルをクエリする別の操作が行われます。クエリ操作は影響を受けますか?


テーブルをロックすることは、元の並列操作を直列操作に変えることです
もちろん、パフォーマンスに影響します

テーブルをロックすることは、元の並列操作を直列操作に変えることです
もちろん、パフォーマンスに影響します

Bazhu が別のアドバイスを求めています。 質問: たとえば、テーブルをロックするとき、その目的はこのテーブルに 5 つのレコードを挿入することですが、登録などの別の操作でもこのテーブルにデータが挿入されます。

テーブル ロックを使用するとキューが発生しますが、挿入は失敗しません


テーブル ロックを使用するとキューは発生しますが、挿入は失敗しません Buzhu さん、熱心な回答をありがとう

皆さん、熱心な回答をありがとう

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