Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
SQLアンチパターン勉強会 #2
Search
yusuke sasajima
December 12, 2013
Programming
0
350
SQLアンチパターン勉強会 #2
やっと第二回開催。。。
資料作るの大変だけど、たのしす〜
yusuke sasajima
December 12, 2013
Tweet
Share
More Decks by yusuke sasajima
See All by yusuke sasajima
一休.com を支えるデータ分析基盤
zimathon
3
5.7k
一休.comにおけるfrontend開発
zimathon
3
1.3k
Other Decks in Programming
See All in Programming
Rubyのobject_id
qnighy
6
1.3k
デザインシステムとコンポーネント指向によるフロントエンド開発プロセスの革新 / Innovation in Frontend Development Processes through Design Systems and Component-Oriented Architecture
nrslib
7
5.1k
【TID2024】模擬講義:プログラマと一緒にゲームをデザインしてみよう!
akatsukigames_tech
0
470
Some more adventure of Happy Eyeballs
coe401_
2
160
Mastering AsyncSequence - 使う・作る・他のデザインパターン(クロージャ、Delegate など)から移行する
treastrain
4
1.5k
私のEbitengineの第一歩
qt_luigi
0
430
Prompt Cachingは本当に効果的なのか検証してみた.pdf
ttnyt8701
0
500
Meet BrowserEngineKit
swiftty
0
340
TypeScriptで 負荷テストを書こう 〜k6のシングルバイナリの秘密〜
dora1998
7
2.9k
Method Swizzlingを行うライブラリにおけるマルチモジュール設計
yoshikma
0
110
RAGの回答精度評価用のQAデータセットを生成AIに作らせた話
kurahara
0
230
いつか使える ObjectSpace / Maybe useful ObjectSpace
euglena1215
2
130
Featured
See All Featured
Art, The Web, and Tiny UX
lynnandtonic
294
20k
Automating Front-end Workflow
addyosmani
1365
200k
Scaling GitHub
holman
458
140k
How to Think Like a Performance Engineer
csswizardry
16
930
How To Stay Up To Date on Web Technology
chriscoyier
785
250k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
123
18k
Rails Girls Zürich Keynote
gr2m
93
13k
Building Adaptive Systems
keathley
36
2.1k
Fantastic passwords and where to find them - at NoRuKo
philnash
47
2.8k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
34
1.7k
Designing with Data
zakiwarfel
98
5k
Transcript
SQLΞϯνύλʔϯ #2 ॓ധࣄۀຊ෦γεςϜ։ൃ෦ ౡ༞հʢ!TJTJKVNJʣ
ຊͷΞδΣϯμ ˔ɹ͡Ίʹʢʣ ɹࢿྉΛ࡞ͬͯΈͯ ͔͔࣌ؒΔ ɹୈࡾճ୭͕Δͷʁʁ ˔ɹຊฤʢʣ ɹষɿΠϯσοΫεγϣοτΨϯʢҋӢʣ ˔ɹΈΜͳͰ͓ʢʣ
ΠϯσοΫεγϣοτΨϯʁ
ΠϯσοΫεͷత w ύϑΥʔϚϯεʂ w ύϑΥʔϚϯεʂʂ w ύϑΥʔϚϯεʂʂʂ w ͯ͢ੑೳͷͨΊ
ΠϯσοΫεΛཧղ͠ͳ͍· ·ͩͱɻɻɻ w ΠϯσοΫεΛ·ͬͨ͘ఆٛ͠ͳ͍͔ɺ গ͚ͩ͠ఆٛ͢Δ͜ͱʹͳΔ w ΠϯσοΫεΛଟ͘ఆٛ͗͢͠Δ͔ɺ ཱͨͳ͍ΠϯσοΫεΛఆٛ͢ΔʢΠϯ σοΫιʣ w
ΠϯσοΫεΛ׆༻͠ͳ͍ΫΤϦΛ࣮ߦ ͯ͠͠·͏
͓͞Μɺ ΠϯσοΫε ͬͯʁ
ΠϯσοΫεͱ දྫ w #5SFFΠϯσοΫε w ϏοτϚοϓΠϯσοΫε w ؔΠϯσοΫεʢ0SBDMF͚ͩʣ w ྻετΞΠϯσοΫε
ΠϯσοΫεͱ
ΠϯσοΫεͷҙ ΠϯσοΫεΛར༻ͯ͠ৗʹ͘ ͳΒͳ͍ w औಘϨίʔυ શମͷҎԼɿΠϯσοΫεΛ༻ͨ͠ํ͕͍ શମͷˋΛ͑ͨɿςʔϒϧϑϧεΩϟϯ͕͍ ˞
ҰൠతʹdͷൣғʢΒ͍͠Ͱ͢ʣ
ΧόϦϯάΠϯσοΫεʁ w ຊདྷͷΠϯσοΫεʹෆཁͳྻΛఆٛ ɹ࡞ྫ $SFBUF*OEFYCVHDPWFSSJOHPOCVT TUBUVT CVH@JE EBUF@SFQPSUFE@CZ
TVNNBSZ ! 4FMFDUTUBUVT CVE@JE EBUF@SFQPSUFE TVNNBSZ 'SPN#VHT8IFSFTUBUVTbPQFO` ! ॓ധͩͱ༧ςʔϒϧͱ͔ͰΠϝʔδ͍͢͠
Ξϯνύλʔϯᶃ ΠϯσοΫεΛશ͘ఆٛ͠ͳ͍ w ΠϯσοΫεΛѱͩͱߟ͑ͯ͠·͏ ʮͳΜ͔ɺΦʔόʔϔου͕ൃੜ͢ΔΒ ͍͠͡ΌΜɻʯ w ͋·ΓΒͳ͍ͷʹɺΦʔόʔϔου ͱ͍͏୯ޠ͚ͩͰఆٛ͠ͳ͍ ϞολΠφΠʂʂ
Ξϯνύλʔϯᶄ ΠϯσοΫεΛଟ͘ఆٛ͗͢͠Δ DSFBUFUBCMFCVHT CVE@JE 4&3*"-13*."3:,&:
EBUF@SFQPSUFE %"5&/05/6-- TVNNBSZ WBSDIBS TUBUVT IPVST */%&9 CVH@JE */%&9 TVNNBSZ */%&9 IPVST */%&9 CVE@JE EBUF@SFQPSUFE TUBUVT
Ξϯνύλʔϯᶄ ΠϯσοΫεΛଟ͘ఆٛ͗͢͠Δ DSFBUFUBCMFCVHT CVE@JE 4&3*"-13*."3:,&:
EBUF@SFQPSUFE %"5&/05/6-- TVNNBSZ WBSDIBS TUBUVT IPVST */%&9 CVH@JE */%&9 TVNNBSZ */%&9 IPVST */%&9 CVE@JE EBUF@SFQPSUFE TUBUVT ෳ߹ΠϯσοΫεࠨ͔ΒߜΓࠐ·ΕΔ͔Βແବ PKࣗಈੜ͞Ε͍ͯΔ ΠϯσοΫεલํҰகͷΈ༗ޮͷͨΊɺ! ແବʹͳΔՄೳੑ͕ߴ͍
Ξϯνύλʔϯᶅ ΠϯσοΫεཱ͕ͨͳ͍ʢΠϯσοΫιʣ ΠϯσοΫεΛ͑ͳ͍ΫΤϦΛ࣮ߦ͢Δ͜ͱ ຐ๏ͷΑ͏ͳྻͷΈ߹Θͤ ΠϯσοΫεͷΦϓγϣϯ खΓ࣍ୈʹΠϯσοΫεΛ࡞ͯ͠͠·͏ ։ൃऀ
None
͍͑ɺ͋ͳͨͷ͜ͱͰ͢ɻ
Ξϯνύλʔϯᶅ ΠϯσοΫεཱ͕ͨͳ͍ʢΠϯσοΫιʣ ిாͰྫ͑Δʢ໊ࣈɺ໊લͷॱʹฒΜ Ͱ͍Δʣͱ ໊ࣈɿνϟʔϧζʢ˕ɿ͙͢ݟ͔ͭΔʣ ໊લɿνϟʔϧζʢºɿ͔͔࣌ؒΔʣ
ిாͷࡧҾΛ۩ମతʹॻ͍ͯΈ·ͨ͠ɻ $ νϟʔϧζɾέϯεέ νϟʔϧζɾϢεέ νϟʔϧζɾνϟʔϧζ % σϏοτɾνϟʔϧζ σϏοτɾϕοΧϜ ̚ ΤϦοΫɾνϟʔϧζ
' ϑΥϨετɾΨϯϓ ϑΥʔϦϯɾὑ ϑΥΧονϟɾνϟʔϧζ ϝϦοτΛಘΒΕͳ͍ΠϯσοΫε $3&"5&*/%&95FMFQIPOF#PPL PO"DDPVOUT MBTU@OBNF pSTU@OBNF !
Ξϯνύλʔϯͷݟ͚ͭํ ࣍ͷݴ༿ʹؾΛ͚ͭΔ ʮ͜ͷΫΤϦΛߴԽ͍ͨ͠Μ͚ͩͲɺͲ͏͢Ε͍͍ʁʯ ୭͔ʹ૬ஊ͢Δ ʮϑΟʔϧυશ෦ʹΠϯσοΫεΛఆٛͨ͠ͷʹɺͳ࣮ͥߦ ͕͘ͳΒͳ͍ͷͩΖ͏ʁʯ έʔεᶄʹ֘ ʮσʔλϕʔεΛ͘͢Δͱॻ͍͍ͯΔͷΛԿ͔ͰಡΜͩ͜ͱ͕ ͋ΔɻͦΕҎདྷɺΠϯσοΫεΘͳ͍Α͏ʹ͍ͯ͠Δʯ έʔεᶃʹ֘
Ͳ͏ͯͦ͠͏ͳΔʁ w ΠϯσοΫεʹ͍ͭͯΒͳ ͍ʢ·͔ͨͬͨͿΓΛ͠ ͍ͯΔʣ w ߟ͍͑ͯͳ͍ʢߟ͑Δ͜ͱΛ ์غ͍ͯ͠Δʣ w ΠϯσοΫεʹؔͯ͠૬ஊͰ
͖Δਓ͕͍ͳ͍
ίϥϜʣબੑʹ͍ͭͯ w બ੍ͱʁ σʔλϕʔεΠϯσοΫεʹ͍ͭͯͷ౷ ܭ ςʔϒϧͷ૯ߦʹ͍ͨ͢ΔΠϯσοΫ εͷதͷݸผͷͷͷׂ߹
TFMFDU DPVOU EJTUJODUTUBUVT DPVOU TUBUVT BTTFMFDUJWJUZ 'SPN#VHT
બੑͷΠϯσοΫε ͷछྨ͕গͳ͍ΧϥϜʹ͍ͭͯɺΠϯ σοΫεΛ࡞ͯ͠ʹཱͨͳ͍ ྫʣੑผɺྸͳͲ
None
ΞϯνύλʔϯΛ ༻͍ͯΑ͍߹
͑ɺɺɺͦΜͳ͜ͱ ͍͍ͯ͠ͷʁ
͍͍ΜͰ͢ʂʂʂ
͍ɺΑ͘ͳ͍Ͱ͠ΐ ʢসʣ
࠷ॳΈΜͳΘ͔Βͳ͍ w ͲͷΑ͏ͳΫΤϦ͕࣮ߦ͞ΕΔ͔Θ͔Βͳ͍ w ΫΤϦ͕Θ͔Βͳ͍͔Βɺ࠷దͳΠϯσοΫ ε࡞Εͳ͍ w ࡞ͨ͠ޙͰɺෆཁʹͳΔέʔεଘࡏͯ͠ ͍Δ Ͱ͖ΔݶΓɺेͳใʹج͍ͮͯݕ౼͠Α
͏
ʮ.&/503ʯͷݪଇ w .FBTVSFʢଌఆʣ w &YQMBJOʢղੳʣ w /PNJOBUFʢࢦ໊ʣ w 5FTUʢςετʣ w
0QUJNJ[Fʢ࠷దԽʣ w 3FCVJMEʢ࠶ߏஙʣ
.FBTVSFʢଌఆʣ w 42-ͷΫΤϦ࣮ߦ࣌ؒΛଌఆ͢Δ w ࠷ଟ͘ͷ࣌ؒΛফඅ͢ΔΫΤϦΛಛ ఆ ˞Ωϟογϡແޮʹͯ͠ w
ϓϩϑΝΠϦϯάʹΑͬͯɺΑΓਖ਼֬ ͳใ͕औಘՄೳ
&YQMBJOʢੳʣ w ΫΤϦ࣮ߦܭը ʢ2VFSZ&YFDVUJPO1MBOɿ2&1ʣʹΑ ΔੳΛ࣮ࢪ w .JDSPTPGU42-4FSWFS 4&54)081-"/@9.-
/PNJOBUFʢࢦ໊ʣ w ΫΤϦͷ2&1ΛಡΜͰɺΠϯσοΫεΛ Θͳ͍ͰςʔϒϧʹΞΫηε͍ͯ͠Δ ՕॴΛ୳ͤʂ w ϕϯμʔ͝ͱʹศརͳπʔϧ͕͋Δ͔Βɺ ͦΕΛͬͯΈΑ͏ w .JDSPTPGU
42-4FSWFS%BUBCBTF&OHJOF5VOJOH"EWJTPS
5FTU w ࠶ͼΫΤϦͷϓϩϑΝΠϦϯά w มߋ͕ͨΒͨ͜͠ͱΛ֬ೝ͔ͯ͠Β ࡞ۀ͢Δ
0QUJNJ[Fʢ࠷దԽʣ w ͳΔ͖ΩϟογϡϝϞϦʹͷͤΑ͏ ˞ͨͩ͠ɺͦΕ͓͍ͷγεςϜʹ ґଘ͠·͢ w ΠϯσοΫεΛ͋Β͔͡ΊΩϟογϡʹ ͷͤΔͱϝϦοτ͕ಘΒΕΔέʔε
.Z4RMɿ-0"%*/%&9*/50$"$)&
3FCVJMEʢ࠶ߏஙʣ w ΠϯσοΫεߦͷߋ৽আʹΑͬ ͯɺ࣍ୈʹෆۉߧʹ ϦϏϧυ͠·͠ΐ͏ w .JDSPTPGU "-5&3*/%&9ʜ3&$03(/*;&
ΠϯσοΫεͲ͏͚ͭΔ͔ͬ ͯɺ͍͠Ͷ ᶃΠϯσοΫε͕༻͞ΕΔՄೳੑ͕ߴ͍߹ͷΈઃ ఆ͢ΔΑ͏ʹઃܭ͢Δ ӡ༻தͷύϑΥʔϚϯεվળΛߦ͍ͭͭɺඞཁͳΠϯσοΫεͷΈઃఆ͍ͯ͘͠ ᶄଟগͯ͘ઃఆ͢ΔΑ͏ʹઃܭ͢Δ ଟগΠϯσοΫε͕ແବʹͳͬͯํ͕ͳ͍͕ɺӡ༻தͷύϑΥʔϚϯεվળͷػձΛ͋ ·Γ࣋ͨͳͯ͘ྑ͍Α͏ʹ͢Δ ! ྆ํΔ͠
·ͱΊ w ਪଌͷΈʹج͍ͮͯɺҋӢʹΠϯσοΫεΛͭ ͚͍͚ͯͳ͍ w ΠϯσοΫεΛཧղ͠ͳ͍··ɺ༻Մ൱Λ அ͍͚ͯ͠ͳ͍ w কདྷతͳσʔλྔͳͲɺΠϯσοΫεΛ༧ଌ͢ Δͷ͚ͬ͜͏͠ΜͲ͍
w .&/503ͷݪଇʹج͍ͮͯɺΠϯσοΫεΛ ཧ͢Δ
ΠϯσοΫ εͱྑ͘ Ͷʂʂ