Ticket #1145 (new enhancement)

Opened 10 years ago

Last modified 9 years ago

管理画面の検索機能のチューニング

Reported by: yamaguchi Assigned to: nobody
Priority: minor Milestone:
Component: pne-admin Version:
Keywords: Cc:

Description (Last modified by kiwa)

■概要

管理画面の検索機能のチューニングを行う

■仕様

■関連情報

  • 報告元
    ユーザが多いSNSの場合、管理画面の検索機能の検索結果を出すまでにかなり時間が掛かってしまう。
    またそれが原因とは限らないが検索中、SNSが重くなっていた。
    今後もユーザ数の大きなSNSが出てくるので早めの対応をお願いします。
    http://openpne.jp/?m=pc&a=page_fh_diary&target_c_diary_id=12042
    

Change History

08/28/07 12:19:36 changed by ebihara

  • owner changed from nobody to ebihara.

國忠さんから振られたので。acceptはまだ

08/29/07 17:52:09 changed by ebihara

  • status changed from new to assigned.

見てみます。

08/30/07 13:20:12 changed by ebihara

ざっと見ただけですが、_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 (...) で一括で取ってきた方が多分少しは速いんじゃないかな、と。

09/03/07 10:17:44 changed by ebihara

予想通り、_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()と同等の関数を作成するのが(速度的には)いいと思います。

09/12/07 20:17:48 changed by ebihara

  • owner changed from ebihara to nobody.
  • status changed from assigned to new.
  • description changed.

いったん手放します。

10/09/07 19:42:31 changed by kunitada

  • milestone changed from OpenPNE2.10 to OpenPNE2.12.

01/18/08 13:47:46 changed by kiwa

  • priority changed from critical to major.
  • description changed.
  • milestone deleted.

対応未定なので

01/18/08 13:48:12 changed by kiwa

  • priority changed from major to minor.

プライオリティ間違えました・・・