気づいた時にリファクタしよう! Laravelのデータベースクエリを最適化するTips_PHPerKaigi2022 LT
by
AkitoTsukahara
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Slide 1
Slide 1 text
Copyright© M&A Laravel Tips PHPerKaigi 2 0 2 2 Akito.Tsukahara
Slide 2
Slide 2 text
Copyright© M&A 2 AkitoTsukahara M&A AkitoTsukahara
Slide 3
Slide 3 text
Copyright© M&A 3
Slide 4
Slide 4 text
Copyright© M&A 4 ⾒
Slide 5
Slide 5 text
Copyright© M&A 5 Tips ⾒
Slide 6
Slide 6 text
Copyright© M&A 6
Slide 7
Slide 7 text
Copyright© M&A ؾ͍ͮͨ࣌ʹϦϑΝΫλ͠Α͏ʂ →খ࢝͘͞ΊΒΕΔTipsूΊ·ͨ͠ 7
Slide 8
Slide 8 text
Copyright© M&A 8
Slide 9
Slide 9 text
Copyright© M&A 9 before
Slide 10
Slide 10 text
Copyright© M&A 1 0 after
Slide 11
Slide 11 text
Copyright© M&A 1 1 EloquentModelͰwhere, findΛ͏ͱ ͖Model::query()->where()ʹ͢Δͱ PhpStormͰิ͕ޮ͘Α
Slide 12
Slide 12 text
Copyright© M&A 1 2 collection id foreach
Slide 13
Slide 13 text
Copyright© M&A 1 1 3
Slide 14
Slide 14 text
Copyright© M&A 1 4 1 before
Slide 15
Slide 15 text
Copyright© M&A 1 5 1 after
Slide 16
Slide 16 text
Copyright© M&A 1 6 1
Slide 17
Slide 17 text
Copyright© M&A 1 7
Slide 18
Slide 18 text
Copyright© M&A 1 8 before
Slide 19
Slide 19 text
Copyright© M&A 1 9 after
Slide 20
Slide 20 text
Copyright© M&A 2 0
Slide 21
Slide 21 text
Copyright© M&A paginate simplePaginate 2 1
Slide 22
Slide 22 text
Copyright© M&A 2 2 paginateͷΘΓʹsimplePaginateΛ͏
Slide 23
Slide 23 text
Copyright© M&A 2 3 paginateͷΘΓʹsimplePaginateΛ͏ paginate simplePaginate
Slide 24
Slide 24 text
Copyright© M&A 2 4 paginateͷΘΓʹsimplePaginateΛ͏ DB ⾒ paginate
Slide 25
Slide 25 text
Copyright© M&A chunk,cursor 2 5
Slide 26
Slide 26 text
Copyright© M&A 2 6 chunk,cursor before ~Eloquent~
Slide 27
Slide 27 text
Copyright© M&A 2 7 chunk,cursor before ~Query Builder~
Slide 28
Slide 28 text
Copyright© M&A 2 8 chunk,cursor after ~chunk~
Slide 29
Slide 29 text
Copyright© M&A 2 9 chunk,cursor after ~chunk~
Slide 30
Slide 30 text
Copyright© M&A 3 0 chunk,cursor after ~cursor~
Slide 31
Slide 31 text
Copyright© M&A 3 1 chunk,cursor after ~cursor~ ෦ͰPDOStatement::fetch()Λ༻͢Δ͜ ͱͰɺ݁ՌηοτΛ1ߦͣͭऔಘ͠·͢ɻऔ ಘͨ݁͠ՌδΣωϨʔλͰฦ͞ΕΔɻ ● ؾʹͳΔਓcursor()ͷίʔυΛಡΜͰΈΑ ͏ʂ
Slide 32
Slide 32 text
Copyright© M&A 3 2 chunkById cursor chunk ...
Slide 33
Slide 33 text
Copyright© M&A Tips 3 3
Slide 34
Slide 34 text
Copyright© M&A count 3 4
Slide 35
Slide 35 text
Copyright© M&A Eloquent 3 5
Slide 36
Slide 36 text
Copyright© M&A N+ 1 ... 3 6
Slide 37
Slide 37 text
Copyright© M&A 3 7 N+ 1
Slide 38
Slide 38 text
Copyright© M&A 3 8