トランザクションレベルで複雑なdbロジックを管理することを目的としていない場合は、dbテーブルを明示的にロックすることはお勧めしません。クエリは引き続き送信されますが、ロックが原因で失敗するか、間違ったタイミングで取得されたロックが原因で他のトランザクションがデッドロックになります。
結果として、あなたはアプリケーションのパフォーマンスの類似性をタンクに入れたいと思っています。
編集:
http://dev.mysql.com/doc/refman/5.1/en/lock-tables.html
mysqlのドキュメントには、ロックがどのように機能するかについての詳細な説明があります。ロックはそれを使用するセッションに対して取得されるため、セッションが特定のテーブルとエイリアスにアクセスできないようにする場合は、セッションへのアクセスを拒否するテーブル以外のすべてをロックする必要があります。
例として、どのロックをテストしたいかわからない。
define("READ_LOCK", 0)
define("WRITE_LOCK",1)
function lock_on_to_tables ($Tables, $lockType=0)
{
$sql = "LOCK TABLES "
foreach ($Tables as $table)
$sql .= $table . " ,";
$sql = substr($sql, 0, -1); // cut off last comma
$sql .= $lockType ? " WRITE" : " READ;
mysqli_query($sql); // or pdo or whatever is in use.
}
ロックを解除するだけです
mysqli_query("UNLOCK TABLES") ;