Skip to content

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

Posted on:2019年2月8日 at 00:00

概要

何年も運用していると 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 / post_mime_type related queries are very slow on larger sites 漢(オトコ)のコンピュータ道: MySQL の EXPLAIN を徹底解説!!