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
370
SQLアンチパターン勉強会 #2
やっと第二回開催。。。
資料作るの大変だけど、たのしす〜
yusuke sasajima
December 12, 2013
Tweet
Share
More Decks by yusuke sasajima
See All by yusuke sasajima
一休.com を支えるデータ分析基盤
zimathon
3
6k
一休.comにおけるfrontend開発
zimathon
3
1.3k
Other Decks in Programming
See All in Programming
ALL CODE BASE ARE BELONG TO STUDY
uzulla
25
6.2k
私達はmodernize packageに夢を見るか feat. go/analysis, go/ast / Go Conference 2025
kaorumuta
2
590
デミカツ切り抜きで面倒くさいことはPythonにやらせよう
aokswork3
0
250
ソフトウェア設計の実践的な考え方
masuda220
PRO
4
600
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
190
Things You Thought You Didn’t Need To Care About That Have a Big Impact On Your Job
hollycummins
0
230
AIと人間の共創開発!OSSで試行錯誤した開発スタイル
mae616
1
630
Introduce Hono CLI
yusukebe
6
2.6k
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
390
kiroとCodexで最高のSpec駆動開発を!!数時間で web3ネイティブなミニゲームを作ってみたよ!
mashharuki
0
640
PHPに関数型の魂を宿す〜PHP 8.5 で実現する堅牢なコードとは〜 #phpcon_hiroshima / phpcon-hiroshima-2025
shogogg
1
240
なぜGoのジェネリクスはこの形なのか? Featherweight Goが明かす設計の核心
ryotaros
7
1.1k
Featured
See All Featured
Embracing the Ebb and Flow
colly
88
4.9k
How to Think Like a Performance Engineer
csswizardry
27
2k
Build your cross-platform service in a week with App Engine
jlugia
232
18k
4 Signs Your Business is Dying
shpigford
185
22k
The World Runs on Bad Software
bkeepers
PRO
72
11k
It's Worth the Effort
3n
187
28k
How to train your dragon (web standard)
notwaldorf
97
6.3k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.5k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.6k
Agile that works and the tools we love
rasmusluckow
331
21k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
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ͷݪଇʹج͍ͮͯɺΠϯσοΫεΛ ཧ͢Δ
ΠϯσοΫ εͱྑ͘ Ͷʂʂ