Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat 管理画面(受注一覧・商品一覧)、フロント画面(商品一覧)のN+1問題対応 #3581

Merged
merged 3 commits into from
Aug 20, 2018

Conversation

okazy
Copy link
Contributor

@okazy okazy commented Aug 15, 2018

概要(Overview・Refs Issue)

管理画面 受注一覧・商品一覧、フロント画面の商品一覧のN+1問題対応

ローカルでの検証結果は以下

変更前

画面 50件 1000件
管理画面:商品一覧 Database Queries1022
Query time717.86 ms
Database Queries10022
Query time6691.96 ms
管理画面:受注一覧 Database Queries104
Query time104.97 ms
Database Queries1069
Query time1001.84 ms
管理画面:会員一覧 Database Queries14
Query time17.15 ms
Database Queries14
Query time33.14 ms
フロント画面:商品一覧 Database Queries345
Query time375.17 ms
※Database Queries1242
Query time1244.07 ms

※フロント画面:商品一覧の1000件はエラーで表示できなかったので200件でテスト

改善後

画面 50件 1000件
管理画面:商品一覧 Database Queries22
Query time86.96 ms
Database Queries22
Query time369.28 ms
管理画面:受注一覧 Database Queries22
Query time57.33 ms
Database Queries22
Query time251.93 ms
管理画面:会員一覧 改善なし 改善なし
フロント画面:商品一覧 Database Queries295
Query time349.10 ms
Database Queries1045
Query time1231.53 ms

方針(Policy)

明示的にjoinする。

実装に関する補足(Appendix)

  • 管理画面:会員一覧はもともとクエリ数が少なかったので対応なし。
  • フロント画面:商品一覧はTaxRuleがLazyLoadされておりクエリ数が多くなっているが、EventSubscriberとGroupByで改善が難しくなっており対応できていない。

テスト(Test)

なし

相談(Discussion)

フロント画面:商品一覧についていい方法があれば教えてください。

@okazy okazy added the enhancement 機能追加 label Aug 15, 2018
@okazy okazy added this to the 4.0 milestone Aug 15, 2018
@okazy okazy changed the title feat 管理画面 受注一覧・商品一覧のN+1問題対応 feat 管理画面(受注一覧・商品一覧)、フロント画面(商品一覧)のN+1問題対応 Aug 16, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement 機能追加
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants