n1bff
1
Data Explorer クエリを作成しました。
管理バックエンドで実行すると、GUI には DB クエリ自体の実行時間が非常に短く表示されます。例:「クエリは 7.9 ms で完了しました。」
ブラウザのネットワーク ログでは、https://example.com/admin/plugins/explorer/queries/1/run にアクセスし、結果を取得するのに 150 ms など、1〜2 桁長かったことが示されています。
クエリを curl すると、管理パネルでクエリを実行するよりも約 2 倍時間がかかります。
オーバーヘッドが少なく、Data Explorer クエリを高速に取得するにはどうすればよいですか?
「いいね!」 1
Falco
(Falco)
2
提供された情報から、それらは単純なクエリ(RDBMSで高速に実行可能)であり、多くの行を返す(バックエンドでのデシリアライズや転送が遅い)と言えます。
現在のパフォーマンスがユースケースの妨げになっている場合は、さまざまなソリューションを検討できます。
「いいね!」 3
sam
(Sam Saffron)
3
user_id、post_idなどの特定の列名を、post_id1などの別の名前にエイリアス化する、特別なルックアップがあります。
「いいね!」 1
n1bff
4
ありがとうございます!
クエリの結果が1行だけの場合でも同じです。例えば、単一の整数を返すクエリを管理バックエンドのデータエクスプローラーで実行すると9ミリ秒かかりますが、curl経由でデータエクスプローラーAPIに対して外部から実行すると200ミリ秒かかります。
それは避けたいです。データエクスプローラーは、フォーラムでDBから情報を取得する良い方法であり、うまく機能するAPIであると提案されたため、使用しています。
私のクエリではJOINに使用していますが、結果セットには使用していません。SELECTには1つの列しかなく、それは任意の名で新しく計算されたものです。
sam
(Sam Saffron)
5
リクエストのサーバー時刻について、NGINXは何と表示していますか?ネットワークの問題の可能性がありますか?
n1bff
6
HTTPステータスコードから右に3桁の浮動小数点数(例:「… 200 642 「-」 0.107 0.108 「system」 …」私のほうで強調表示)であると仮定すると、バックエンドで報告されているクエリ時間の約10倍であり、クライアントからcurlにかかる時間のほぼ半分です。