ここの情報は古いです。ご理解頂いた上でお取り扱いください。

Opened 12 years ago

Closed 12 years ago

Last modified 12 years ago

#747 closed enhancement (fixed)

DBの日記カテゴリ関連テーブルのインデックス作成

Reported by: ogawa Owned by: maruyama
Priority: minor Milestone: OpenPNE2.9.2
Component: その他 Version: 2.10.x
Keywords: Cc:

Description (last modified by ebihara)

■機能概要

DBの日記カテゴリ関連テーブルのインデックスを作成する。

■仕様

  • 以下のテーブルに対して、適切なインデックスを貼る。
    • c_diary_category
    • c_diary_category_diary

■関連情報

Change History (11)

comment:1 Changed 12 years ago by ogawa

Summary: 日記カテゴリ関連テーブルのインデックス作成DBの日記カテゴリ関連テーブルのインデックス作成

comment:2 Changed 12 years ago by ogawa

Milestone: OpenPNE2.8beta7OpenPNE2.8beta8

comment:3 Changed 12 years ago by ogawa

Milestone: OpenPNE2.8beta8OpenPNE2.10開発タスク

バグではないので2.10に回します。

comment:4 Changed 12 years ago by ogawa

Milestone: OpenPNE2.10開発タスクOpenPNE2.9.2
Version: 2.9.x

comment:5 Changed 12 years ago by maruyama

担当します。

comment:6 Changed 12 years ago by maruyama

Owner: changed from nobody to maruyama

comment:7 Changed 12 years ago by maruyama

現状のc_diary_categoryテーブルのcategory_nameフィールドはTEXT型になっているようです。 そのため、

・先頭数文字を指定した形でインデックスを張る ・TEXT型からVARCHAR型などに変更する

などの処置が必要となりそうです。

comment:8 Changed 12 years ago by maruyama

インデックスを設定するSQLをコミットしました。

r3612

インデックスが用いられていないSQLを実行している関数を調べたところ、

・db_diary_category_list4c_member_id

・db_diary_get_category_id4category_name

・db_diary_list4c_diary_category_id

・db_diary_category_list4c_diary_id

が対象となりました。 そのため、この四つに対しWHERE、ORDERで用いられているフィールドに対してインデックスを張るように設定しました。 上記のcategory_nameについては先頭20文字をインデックスに含めるように設定しました。

どのSQLもEXPLAINで [type] => ALL となっていたものが、db_diary_get_category_id4category_name以外は

[type] => ref

に、またdb_diary_get_category_id4category_nameは

[type] => range

になり、それぞれインデックスが利用されていることは確認しました。(rangeはTEXTに対する先頭20文字でのインデックスのため)

comment:9 Changed 12 years ago by ogawa

Resolution: fixed
Status: newclosed

comment:10 Changed 12 years ago by tejimaa

Component: core【OpenPNEコア部分】pne-framework

comment:11 Changed 12 years ago by ebihara

Description: modified (diff)
Note: See TracTickets for help on using tickets.