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