Opened 13 years ago
Last modified 13 years ago
#1145 new enhancement
管理画面の検索機能のチューニング
Reported by: | yamaguchi | Owned by: | nobody |
---|---|---|---|
Priority: | minor | Milestone: | |
Component: | pne-admin | Version: | |
Keywords: | Cc: |
Description (last modified by )
■概要
管理画面の検索機能のチューニングを行う
■仕様
■関連情報
- 報告元
ユーザが多いSNSの場合、管理画面の検索機能の検索結果を出すまでにかなり時間が掛かってしまう。 またそれが原因とは限らないが検索中、SNSが重くなっていた。 今後もユーザ数の大きなSNSが出てくるので早めの対応をお願いします。 http://openpne.jp/?m=pc&a=page_fh_diary&target_c_diary_id=12042
Change History (8)
comment:1 Changed 13 years ago by
Owner: | changed from nobody to ebihara |
---|
comment:3 Changed 13 years ago by
ざっと見ただけですが、_db_admin_c_member_list()の以下が気になります。
foreach ($ids as $id) { $c_member_list[] = db_member_c_member4c_member_id($id, true, true, 'private'); }
ユーザ1人につき1クエリじゃなくて、WHERE IN (...) で一括で取ってきた方が多分少しは速いんじゃないかな、と。
comment:4 Changed 13 years ago by
予想通り、_db_admin_c_member_list()内のdb_member_c_member4c_member_id($id, true, true, 'private');をループでforeachで何十回もまわしている箇所がボトルネックでした。
試しに配列でメンバーを指定できるようにしたdb_member_c_member4c_member_id()で試してみたら、以下の通り、3割~6割ほどの速度改善が見込めました。
表示件数:20件
- 通常版 0.635684967041(s)
- 配列版 0.352864027023(s)
表示件数:50件
- 通常版 1.34860086441(s)
- 配列版 0.916195869446(s)
表示件数:100件
- 通常版 2.46081805229(s)
- 配列版 1.9507329464(s)
また、db_member_c_member4c_member_id()にも db_member_c_member_secure4c_member_id($c_member_id) と db_member_c_member_profile_list4c_member_id($c_member_id, $public_flag) をコールしている箇所があるので、これらもすべて配列指定に対応すればかなりの速度改善に繋がります。
ですので、対応策としては、配列によるメンバー指定に対応した管理画面メンバーリスト独自のdb_member_c_member4c_member_id()と同等の関数を作成するのが(速度的には)いいと思います。
comment:5 Changed 13 years ago by
Description: | modified (diff) |
---|---|
Owner: | changed from ebihara to nobody |
Status: | assigned → new |
いったん手放します。
comment:6 Changed 13 years ago by
Milestone: | OpenPNE2.10 → OpenPNE2.12 |
---|
comment:7 Changed 13 years ago by
Description: | modified (diff) |
---|---|
Milestone: | OpenPNE2.12.0 |
Priority: | critical → major |
対応未定なので
Note: See
TracTickets for help on using
tickets.
國忠さんから振られたので。acceptはまだ