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

Opened 10 years ago

Last modified 10 years ago

#3853 new task

db_member_search関数の処理速度を改善する

Reported by: nagasawa Owned by: nagasawa
Priority: minor Milestone:
Component: 指定しない Version: 2.12.x & 2.14.x
Keywords: Cc:

Description (last modified by nagasawa)

■現象

検索に一致するメンバーが多く存在した場合に負荷がかかる。

■原因

  • プロフィール情報からすべてのメンバーIDを取得している
  • プロフィール項目設定で追加された項目を対象に検索した場合に項目数だけSQLを実行している
  • 取得したSQLをphpを使って配列同士で比較し、両方に存在する要素を新たに配列として生成している
  • メンバーIDからメンバー情報を取得する際に一度$memberに代入してから$listに代入している

■修正内容

  • c_member_idの取得をdb_get_colからdb_get_col_pageに変更
  • サブクエリを使用してSQLの実行回数を減らす
  • total_numの取得をselect count(*)~を実行して取得
  • $c_memberに一度代入しているのを直接$listに代入させる

■関連情報

Change History (3)

comment:1 Changed 10 years ago by nagasawa

Description: modified (diff)

comment:2 Changed 10 years ago by nagasawa

r11407 でブランチの作成と変更したファイルをコミットしました。

comment:3 Changed 10 years ago by nagasawa

プロフィール項目の複数検索をした場合にINにANDが付加されていなかった問題を
r11409 で修正しました。

Note: See TracTickets for help on using tickets.