2012-02-06 15 views
0
  1. するとプロセスが(INSERTSELECTなど)が完了するまで、私OPTIMIZEREPAIR、またはANALYZE MySQLのテーブル、これが実行されているから、他のすべての操作を停止しますか?私はしばしばANALYZEテーブルか?カップルのMySQLの質問

  2. 、複数のユーザーが自分のサイトを通じて異なる場所で同時に INSERTUPDATESELECTなどの操作を行っている場合は、すべての操作が正常に高負荷に囲まれ実行されますか?あるいは、適切に実行されるように設定するべき特定のコードがありますか?

さらに詳しい説明が必要ですか?私はもっ​​と喜んでくれます。

ありがとうございました。

答えて

1
  1. http://dev.mysql.com/doc/refman/5.0/en/mysqlcheck.html
  2. これは、データベース管理システムを心配する必要がありますものです。あなたは本当に同期について何もすることはできません。
+0

ありがとうございました。それはかなりきれいです - 私は1行のコードで4つの操作をすべて行うことができます。しかし、それはテーブルをロックします。 – Hope4You

3
  1. すべての3の操作は、読み取りロックを作成します。 OPTIMIZEとREPAIRは書き込みロックを作成します。したがって、OPTIMIZEおよびREPAIRが実行されているときに、ANALYZEが実行されていて読み取り/書き込み操作が行われていないと、それ以上の読み取り操作は実行できません。

  2. 1人のユーザーのクエリシーケンスが他のユーザーのクエリシーケンスと重複しないことが保証されていません。 Transactionを使用してください。

+0

MySQLのコマンドが実行されることはないと言っていますか?別のものと重なってしまうので注意してください:すべての操作が同じ時刻に実行されるかどうかは関係ありません。実行される。 – Hope4You

+0

私はオーバーラップしていないと言った。 1人のユーザーは3つの照会を送信し、他のユーザーは4を送信することができます。最後の4つの照会は、これは重複しています。これは起こり得る。しかし、すべてのクエリが実行されます。この非原子的な動作を停止するには、トランザクションを使用します。 –

+0

ありがとうございます。今、私は分かる。 – Hope4You