検索

ホームページ  >  に質問  >  本文

php - mysqlの更新操作が遅い、その解決方法

データベースには items テーブルがあり、その中の userid フィールドを更新する必要があります。
ステートメントは UPDATE items SET userid = xxx WHERE userid = 0 limit 1;
です。 >トランザクションの最適化を有効にしました 時間が経ちましたが、それでも 30,000 件の記事を更新するのに 3 分かかります。
朝、一時テーブルを作成し、userid->items 配列を保存してから、一時テーブルを継続的にクエリするための PHP スクリプトを作成して、操作してみます。
しかし、このように複数のスクリプトが実行されると、生き残れるのは 1 つだけです...そして監視効果は達成できません。
現在のアイデアは、更新操作を削除と挿入に分割することです。今試しています
また、PHP を開発している場合に質問したいのですが、rabbitmq の PHP バージョンのドキュメントが見つかりません。どのメッセージ キューを使用するのがよいでしょうか。 。 。

仅有的幸福仅有的幸福2810日前593

全員に返信(2)返信します

  • 我想大声告诉你

    我想大声告诉你2017-05-16 13:09:09

    更新の代わりに Replace into を使用することも、重複キーの更新で Insert into... を使用してバッチで更新することもできます。

    さらに、Rabbitmq PHP バージョンのデモが添付されています:
    https://github.com/yuansir/ra...

    返事
    0
  • 仅有的幸福

    仅有的幸福2017-05-16 13:09:09

    キューとしてredisを使用する これが一般的に使用されます。制限があるため、SQL が遅くなっている可能性があります。更新するすべてのデータの ID を取り出して更新してみると、かなり改善されます。

    返事
    0
  • キャンセル返事