Data Explorer のクエリが遅い

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

提供された情報から、それらは単純なクエリ(RDBMSで高速に実行可能)であり、多くの行を返す(バックエンドでのデシリアライズや転送が遅い)と言えます。

現在のパフォーマンスがユースケースの妨げになっている場合は、さまざまなソリューションを検討できます。

  • ページあたりの行数を減らし、各ページを高速化する。

  • 同じ情報を新しいAPIエンドポイントで公開し、キャッシングとデータ形式をよりスマートにするプラグインを構築する。

  • 基盤となるデータベースに直接クエリを実行する。

「いいね!」 3

user_id、post_idなどの特定の列名を、post_id1などの別の名前にエイリアス化する、特別なルックアップがあります。

「いいね!」 1

ありがとうございます!

クエリの結果が1行だけの場合でも同じです。例えば、単一の整数を返すクエリを管理バックエンドのデータエクスプローラーで実行すると9ミリ秒かかりますが、curl経由でデータエクスプローラーAPIに対して外部から実行すると200ミリ秒かかります。

それは避けたいです。データエクスプローラーは、フォーラムでDBから情報を取得する良い方法であり、うまく機能するAPIであると提案されたため、使用しています。

私のクエリではJOINに使用していますが、結果セットには使用していません。SELECTには1つの列しかなく、それは任意の名で新しく計算されたものです。

リクエストのサーバー時刻について、NGINXは何と表示していますか?ネットワークの問題の可能性がありますか?

HTTPステータスコードから右に3桁の浮動小数点数(例:「… 200 642 「-」 0.107 0.108 「system」 …」私のほうで強調表示)であると仮定すると、バックエンドで報告されているクエリ時間の約10倍であり、クライアントからcurlにかかる時間のほぼ半分です。