0

eコマースシステムがあり、別の在庫システムがあります. 私たちはphpとmysqlを使用しています。在庫の詳細を e コマース サーバーに送信する必要があります。1 時間ごとに約 7500 のレコードをサーバーにプッシュする必要があります。在庫を追加するための E コマース システム上に API を作成しました。ただし、両方のサーバーが別の場所にあるため、時間がかかります。このインベントリをサーバーにプッシュするより高速な方法はありますか? つまり、サーバー上の特定のテーブルにレコードを 2 列だけ追加します。

4

4 に答える 4

1

それらは、rsync、LOAD DATA INFILE、INSERT MULTIPLE ROWS(Thomasが言うように)などのMySQL側の多くのオプションでなければなりません。

PHP側では、より高速なプリペアドステートメントを使用できます。ここでは、パラメータをバインドしてループで実行するだけです。クエリ定義がループの外にある間。しかし、それでもMySQLソリューションはあなたの場合により効果的でなければなりません。

于 2013-03-14T05:10:45.850 に答える
1

ボトルネックがどこにあるのか教えていただけますか? API がデータベースによって停止されていませんか? 1 回の呼び出しで API を介してプッシュするアイテムの数は?

于 2013-03-14T04:42:06.600 に答える
1

テーブルの行ごとに 1 つの API リクエストを実行しています。これにより、多くのオーバーヘッドが発生します。

代わりに、7,500 行以上の巨大なリクエスト (良くはありませんが、それでも 1/1 よりはましです) を行うか、複数のnレコードをリクエストしてください。性能nに合わせて調整します。

編集

あなたは e コマース ソリューションに名前を付けていないので、それは社内のものであり、API をいじることができると思います。これが正しくない場合は、お知らせください。

于 2013-03-14T04:47:00.683 に答える
1

MySQL では、1 つのテーブルに大量のデータを追加すると、1 つのテーブルINSERTに対して複数のテーブルを作成できますROWS。その方がはるかに高速です。

INSERT INTO inventory VALUES (2, 'Lamp'), (1, 'Bike'), (8, 'TV');

INSERT最適化に関するドキュメントは、 MySQL ドキュメントにあります。

ドキュメントには、検討する必要がある代替ソリューションも示されています。

于 2013-03-14T04:48:12.667 に答える