WordPressで管理画面のライブラリの表示が遅いのでpost_mime_typeのインデックスを貼ったら早くなった。

概要

何年も運用していると WordPress にアップロードしてるファイルがかなりの数になってきていて管理画面のライブラリ画面の表示が遅くなってきます。 MySQL のスロークエリーを眺めていると SELECT DISTINCT post_mime_type FROM wp_posts WHERE post_type = 'attachment';が特に遅かったりします。

EXPLAIN で確認して見ると Extra が Using temporary インデックスが効いてない模様

インデックスを貼って

CREATE INDEX post_type_mime_type_idx ON wp_posts (post_type,post_mime_type);

EXPLAIN で確認して見ると Extra が Using where; Using index インデックスが効いてます。 調べてみると WordPress のチケット 31071 にそのまんまの内容がありました。

教訓

WordPress のアップデートを怠っていると日々 WordPress コミニティの改善の恩恵を受けれないので積極的に更新しよう!

参考

media / postmimetype related queries are very slow on larger sites 漢(オトコ)のコンピュータ道: MySQL の EXPLAIN を徹底解説!!

arrow_back

Previous

課題のやり取りやって生き方

Next

django 管理画面でモデルの保存時に追加で処理したい
arrow_forward