web-dev-qa-db-ja.com

SQL_CALC_FOUND_ROWSポストカウントが原因でクエリがロードを引き起こしましたか?

私はこの問い合わせがサーバーに何らかの負荷をかけているのを発見しました、私のホスティングプロデューサーはそれを調べるように私に頼みました。

SELECT SQL_CALC_FOUND_ROWS  wp_posts 

私はこれを選択しないと思います。 wp_postsテーブルに行が見つかりました..しかし、私は別のページでこのクエリを試みました、それは要求を完了するのにとても時間がかかります。誰かがこの問題から克服するのを手伝ってくれる?

ありがとうございます。

4
VKGS

WordPressは、MySQLのこの機能を使用して、限られた量のみを検索している場合の総投稿数を取得します(合計100投稿、ただし1ページあたり10投稿のみ)。

ソースを簡単に見てみると、それを無効にできるno_found_rowsクエリ引数があります。これはページネーションを破壊し、needカウントしない特定のクエリでのみ使用されるべきです(例えば get_posts() はそれを使用します)。デフォルト)。

おそらくあなたはデータベース全体のパフォーマンスを調べる必要があります(あなたが何かクレイジーなサイズで実行している場合)、あるいは設定に問題がある場合(リソースに問題を起こさないほど小さいものを実行している場合)。

3
Rarst