質問: 6379) LIMIT 1;'; } $wpdb -> get_results($SQL); ``` ページの表示完了までに10秒を超えることもあり何か対策をしたいのですが、どうすればよろしいでしょうか? 環境・バージョンは以下のとおりです。 WordPress 5.1 PHP:7.0.33 MySQL:5.7.25 回答よろしくお願い致します。
回答: 遅くなる要素が色々ありますね。 1. exists句は遅くなるのでなるべくin句の方が良い 2. データレコード出力に*は極力使わない 3. データレコードに識別子のシングルクォート''がついていない 4. テーブル名に``の識別子がついていない 5. testテーブルにインデックスを付与していないかも? 6. 同じテーブルを副問合せする場合は表別名を付与すべし 特に4が盲点ですが甘く見てはいけません。なぜならこれを付けないとmysqlはどれがテーブルなのかすぐ見分けられないので動作が遅くなるとドキュメントに書かれています。 自分も15000件ほどのレコードを副問合せで検索させた場合、10分ぐらいかかるという同じような問題に直面したことがあり、このような処理を施すことによって5秒かからないぐらいに改善されたことがあります。