0

Java と MySQL 5.1.63 GA を使用して、データベースにいくつかの入力テーブルといくつかの出力テーブルがあるシステムを構築しようとしています。
出力テーブルにデータを入力するために、サーブレットから呼び出され、最終的に出力テーブルにデータを入力する前に多くの中間テーブルを生成するプロシージャを作成しました。多くの計算があり、最大で 1 分もかかる場合があります。

入力テーブルと出力テーブルは user_id を使用して動作しますが、中間テーブルには値列が含まれているだけです。

しかし、次の懸念があります
。1) 2 人のユーザーが一度に計算シーケンスをトリガーするとどうなりますか?どうすれば中間テーブルを保護できますか?

2)一時テーブルなどの他の手法を使用できますか?

4

1 に答える 1

1

各ユーザーを分離する方法は、すべての中間計算を一時テーブルで実行することです。MySQL のドキュメントによると:

TEMPORARY テーブルは現在の接続に対してのみ表示され、接続が閉じられると自動的に削除されます。これは、2 つの異なる接続が、互いに競合したり、同じ名前の既存の非 TEMPORARY テーブルと競合したりすることなく、同じ一時テーブル名を使用できることを意味します。

入力テーブルと出力テーブルがすべて user_id によって分離されている限り、問題はありません。

一時テーブルを使用するようにコードを変更することも非常に簡単です。ほとんどの場合、次のようにステートメントに単語TEMPORARYを追加するだけです。CREATE TABLE

CREATE TEMPORARY TABLE foo [...]
于 2012-05-13T11:50:38.297 に答える