サポート » 使い方全般 » wp_postsテーブルで、post_typeにインデックスが貼ってない理由

  • 解決済 creampink

    (@creampink)


    =====
     質 問
    =====
    いつもお世話になっております。

    wp_postsテーブルを見るとpost_typeにインデックスが貼ってないことがわかりました。

    現在は
    ・記事が100万件ある。
    ・post_typeが20種類ある。
    ・検索対象は2種類だけで、18種類は検索に使わない。
    という状況です。

    ここで2種類のpost_typeを対象にmeta_valueで検索にかけると、post_typeにインデックスが貼っていないので遅くなりますよね。検索対象でない18種類までスキャンされてしまうからです。

    なのでpost_typeにインデックスを貼ろうとしているのですが、そもそもなぜ貼っていないのか疑問に思いました。

    貼ることに何か問題など考えられるでしょうか?

    =====
     補 足
    =====
    気づいたことがありましたので補足させて頂きます。

    type_status_date なるインデックスがあり、ここに
    ・post_type
    ・post_status
    ・post_date
    ・ID
    がミックス(?)でインデックスされていることに気づきました。

    いったいなぜこんなインデックスになっているのでしょうか?
    何にどう役立つのか謎です。

    改めまして先の状況において、このミックスされた謎のインデックスはなくして、post_typeだけのインデックスにしようかと考えているのですが、不安が残ります。

    問題などがないか、よろしければアドバイス頂けませんでしょうか。

    尚、post_statusはpublishしか使いませんし、指定日で抽出する予定もないのでpost_dateのインデックスもいらなそうです。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • こんにちは

    必要と思われるならインデックスを追加されたらいいと思いますが、データベースに問題があるかどうか判断できないのであれば、やめておかれたらどうかと思います。
    また、WordPress のデータベースバージョンが上がった際にそのインデックスがどうなるかも不明です。
    インデックスを追加したらどのような影響があるのかは、MySQL について質問できるところで聞かれたら良いと思います。

    type_status_date が追加された経緯は以下にあります。
    https://core.trac.wordpress.org/ticket/2604
    私は英語が苦手なので、チケット内からリンクしている記事含めて読んでいませんが。

    トピック投稿者 creampink

    (@creampink)

    こんにちは、いつもお世話になってます。
    そうですよね、よくわからないのでやめておきます。
    リンクありがとうございます。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「wp_postsテーブルで、post_typeにインデックスが貼ってない理由」には新たに返信することはできません。