0

次の場合、mysqlテーブルを明示的にロックする必要がありますか?

mysqlデータベースのユーザー名:db_user(および1つだけ)
Webクライアントセッション:多数のユーザーが同時にログインしました

mysqlユーザーは単一ですが、Webサーバーとのクライアントセッションが多数あります。何が起こりますか(1つのテーブルにレコードを挿入してから、挿入IDを取得し、別のテーブルにデータを追加します):

  1. 多くのWebセッションには、db_userの個別のコピーがあります。
  2. 多くのブラウザセッション用のdb_userの単一コピー。
  3. 他の。

助けてください。

4

1 に答える 1

4

ハーミート、

短い答えはノーです。説明したことを行うときに使用する必要はありませんLOCK TABLES

LOCK TABLESテーブルへの書き込みが自分だけであることを保証したい場合にのみ使用する必要があります。たとえば、INSERT多数のレコードが必要で、操作をできるだけ速く実行したい場合などです。

これは、コマンドによって作成されたダンプ ファイルで確認できますmysqldump。ダンプ ファイルの例を次に示します。

LOCK TABLES `tbl` WRITE;
/*!40000 ALTER TABLE `tbl` DISABLE KEYS */;
INSERT INTO `tbl` VALUES ...
/*!40000 ALTER TABLE `tbl` ENABLE KEYS */;
UNLOCK TABLES;
于 2012-07-23T05:56:11.233 に答える