問題タブ [table-locking]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
25 参照

mysql - mysql コマンド ライン経由で Innodb テーブルに手動で読み取りロックまたは書き込みロックを適用できない

テーブルがロックされたケースでシナリオをテストしようとしています。

これらのような読み取りおよび書き込みロックを適用しようとしました-

しかし、この後書くことができました -

読み取りロックも機能していません。ロックを適用した後、選択クエリを正常に実行できました。

テーブルに書き込みロックが適用されている可能性があるときに、大量のデータのテーブル移行を行うときに、アプリケーションの動作 (安らかな API) をテストする必要があります。したがって、コマンド ラインでロックを設定できれば、API にも適用されると思います。アプリケーションでmysqlにログインするのと同じユーザーを使用してコマンドラインにログインしています。

何か不足している場合はお知らせください。

テーブルは InnoDb 型です。

0 投票する
1 に答える
252 参照

php - PDO 一般エラー: 2014 テーブルをロックしようとすると、他のバッファリングされていないクエリがアクティブな間、クエリを実行できません

私は誰かの古い古いコードを使用から使用に更新mysql()してPDOいます。ある場所にはLOCK TABLES、2 人のユーザーが同時に同じデータにアクセスするのを防ぐコマンドがいくつかあります。を実行するLOCK TABLESと、PDO「一般エラー: 2014 他のバッファリングされていないクエリがアクティブな間はクエリを実行できません」がスローされます。

他の変数を排除するためにいくつかのテスト コードを作成しました。システムは Ubuntu 18 / PHP 7.2 / MySQL 5.7.27 で実行されます。

$_DB->beginTransactionの前後にLOCK TABLESを追加しようとしまし$_DB->commitUNLOCK TABLESが、それでも同じエラーが発生します。

ATTR_EMULATE_PREPARESと のさまざまな組み合わせを試しMYSQL_ATTR_USE_BUFFERED_QUERYましたが、違いはないようです。

0 投票する
1 に答える
1265 参照

sql - 複数のユーザーが同時にテーブルに書き込みおよび読み取りを行うことでテーブルがロックされるのを防ぐにはどうすればよいですか?

私は、ユーザーごとのセッションごとにSQLサーバーに対して常に書き込み、読み取り、および削除を行うグループ用に作成したプログラムを持っています。個人によって書き込まれたり削除されたりしているすべてのデータが別の人に必要とされることはないため、何が書き込まれたり削除されたりするかについて心配する必要はありません。各ユーザーの書き込みは一意の ID で区切られ、すべてのクエリはその一意の ID に基づいています。

複数のユーザーが同時に同じテーブルから行を書き込み/削除できるようにしたい。を使用してデータの書き込み中にセッションを読み取れるように設定できることはわかっていますSET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED

質問:

つまり、複数のユーザーが同時に同じテーブルに書き込み/削除することはできますか?

これが不可能な場合の現在の私の唯一の考えは、ユーザーセッションごとに一時テーブルに書き込むようにツールを設定することです。しかし、1日に何百回も一時テーブルを常に作成および削除するのは効率的なオプションではないと思います。