-2

1 つのテーブルで 5 ~ 10 秒以内に数百の同時行更新要求を受信して​​います。これにより問題が発生します。実際には行が更新されず、mysql_query($query)応答でエラーも発生しません。

これの原因と考えられるものと、これを解決するにはどうすればよいかを提案してください。

テーブルには、約 200k レコードが含まれています。問題の一つかもしれません。

4

1 に答える 1

1

ストレージ エンジンの構成を確認してください。実際には「多すぎる」挿入を実行していないようですが、負荷の高いサーバー (安価な共有ホストなど) を使用している場合は、多くの挿入/更新に適したエンジンに切り替えると役立つ場合があります。

InnoDB と MyISAM のパフォーマンスの比較

特定のケースで機能する場合と機能しない場合があるその他の潜在的な解決策:

1) 更新/挿入の速度を上げるために、更新されるテーブルのインデックスの数を減らします。

2) 受け取った編集内容を小さなテーブル (インデックスなし) にキャッシュし、定期的に同期します。

3)挿入を単一のクエリに統合します(これはうまくいかないように聞こえますが)、それらすべてをメモリ内の一時テーブルに挿入し、INSERT INTO ... SELECT FROM ... ターゲットに対して単一のトランザクションを作成しますテーブル。

于 2012-06-30T07:15:15.593 に答える