Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
このRDBについて私は驚くべき闇を見つけたがそこを発表するにはネットは怖すぎる
Search
soudai sone
PRO
July 03, 2016
Technology
31k
44
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
このRDBについて私は驚くべき闇を見つけたがそこを発表するにはネットは怖すぎる
YAP(achimon)C::Asia Hachioji 2016midの資料です。
soudai sone
PRO
July 03, 2016
More Decks by soudai sone
See All by soudai sone
ビジネスを止めない技術的負債の返済のための戦略とその手法 - 技術的負債と向き合う / Complexity and Simplicity
soudai
PRO
3
630
AIを活用するために決めた "やらないこと" - 価値に注目する / Not betting on AI
soudai
PRO
3
680
目の前の楽しいが人生を変える - コミュニティの螺旋の歩き方と楽しむコツ / change your life
soudai
PRO
5
750
医療の現場を変革に挑戦した半年間の軌跡 - PythonとAIで現場を変える / From Code to Care
soudai
PRO
1
720
形骸化しない社内勉強会の取り組み - オーナーシップの作り方 / In-house study session
soudai
PRO
1
390
Djangoユーザが知っ得なPostgreSQL機能 - 設計の選択肢を増やす / Djang-use-PostgreSQL
soudai
PRO
1
340
AI時代における具体と抽象の往復 - 日常にチャンスがある / Moving Between the Concrete
soudai
PRO
9
4.5k
制約を設計する - 非決定性との境界線 / Designing constraints
soudai
PRO
6
4.7k
APMの世界から見るOpenTelemetryのTraceの世界 / OpenTelemetry in the Java
soudai
PRO
2
900
Other Decks in Technology
See All in Technology
自主式軟體工廠
philipz
0
230
Futexes the good, the bad, the ugly
ennael
PRO
0
130
AI時代に必要な脅威モデリング― 変化の速度に負けない理解とリスク判断
masakane55
4
1k
Kernel testing frameworks
ennael
PRO
0
110
Datadog の学び方 - あるいは、オブザーバビリティを学ぶとは何か
mananyuki
1
490
ファミコンでPHPを動かす / PHP on the Famicom side b
tomzoh
0
140
使いこなすために知っておきたい Azure SRE Agent アンチパターン
torumakabe
2
360
AI時代のAPI開発を加速する品質ガードレール / API Quality Guardrails in the AI Era
yokawasa
0
150
Snapshot Testing in Practice: Predictable and Reliable SwiftUI Views
fespinoza
0
120
『GOエコノミー 』(相乗りサービス) におけるスペック駆動開発
mot_techtalk
1
310
[2026 Oracle Technical Deep Dive] AI時代のアプリケーションを支えるCloud NativeとJava EEモダナイゼーション (2026年9月17日開催)
oracle4engineer
PRO
0
120
IoTデバイスを繋げるプロトコルMatterをAndroidで使用する方法
harutiro
0
120
Featured
See All Featured
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
4 Signs Your Business is Dying
shpigford
187
23k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
2
2.9k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
4
1.2k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
250
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
540
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
710
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
1
620
Ruling the World: When Life Gets Gamed
codingconduct
0
390
Between Models and Reality
mayunak
4
480
Transcript
͜ͷRDBʹ͍ͭͯ ࢲڻ͖͘ҋΛݟ͚͕ͭͨ ͦ͜Λൃද͢Δʹωοτා͗͢Δ :"1$"TJB)BDIJPKJ
What is it? σʔλϕʔεͷण໋ ΞϓϦέʔγϣϯΑΓ͍
What is it? ͭ·Γɾɾɾ
What is it? ҋଟ͍
What is it? ͦΜͳࢲͷ ۪ஒ ܦݧஊΛ͓͠·͢
͋͐͡Μͩ ̍ɹࣗݾհ ̎ɹMySQL ̏ɹPostgreSQL ̐ɹΞϯνύλʔϯ ̑ɹ·ͱΊ
͋͐͡Μͩ ̍ɹࣗݾհ ̎ɹMySQL ̏ɹPostgreSQL ̐ɹΞϯνύλʔϯ ̑ɹ·ͱΊ
ࣗݾհ ໊લɿીࠜɹେʢͦͶɹ͚ͨͱʣ ྸɿ31ࡀʢࡾਓͷࢠڙ͕͍·͢ʣ ৬ۀɿגࣜձࣾɹΦϛΧϨʢCTOʣ ॴଐɿຊPostgreSQLϢʔβձ ɹɹɹதࠃࢧ෦ ࢧ෦ ɹɹٕज़తʹLLܥݴޠͱ͔RDB͕͖Ͱ͢
ࣗݾհ ໊લɿીࠜɹେʢͦͶɹ͚ͨͱʣ ྸɿ31ࡀʢࡾਓͷࢠڙ͕͍·͢ʣ ৬ۀɿגࣜձࣾɹΦϛΧϨʢCTOʣ ॴଐɿຊPostgreSQLϢʔβձ ɹɹɹதࠃࢧ෦ ࢧ෦ ɹɹٕज़తʹLLܥݴޠͱ͔RDB͕͖Ͱ͢
What is it? d
ࣗݾհ ໊લɿીࠜɹେʢͦͶɹ͚ͨͱʣ ྸɿ31ࡀʢࡾਓͷࢠڙ͕͍·͢ʣ ৬ۀɿגࣜձࣾɹΦϛΧϨʢCTOʣ ॴଐɿຊPostgreSQLϢʔβձ ɹɹɹதࠃࢧ෦ ࢧ෦ ɹɹٕज़తʹLLܥݴޠͱ͔RDB͕͖Ͱ͢
͋͐͡Μͩ ̍ɹࣗݾհ ̎ɹMySQL ̏ɹPostgreSQL ̐ɹΞϯνύλʔϯ ̑ɹ·ͱΊ
MySQL ͦʔౖ͍ܹͩͨ͠ɻ
MySQL ͦʔ͍ͩ.Z42-Θ͔Β͵ɺ ͚ΕͲܕʹਓҰ൪හײͰ͋ͬͨ
ܕม -- ςʔϒϧͷߏ `hoge` CREATE TABLE IF NOT EXISTS `hoge`
( `id` int(11) NOT NULL, `val` varchar(255) NOT NULL ); mysql> SELECT * FROM hoge; +----+--------+ | id | val | +----+--------+ | 1 | ONE | | 2 | 2 | | 3 | Three3 | | 4 | 4Four | +----+--------+ 4 rows in set (0,00 sec)
ܕม mysql> SELECT * FROM hoge WHERE val = "0";
Empty set (0,00 sec) mysql> SELECT * FROM hoge WHERE val = 2; +----+-----+ | id | val | +----+-----+ | 2 | 2 | +----+-----+ 1 row in set, 3 warnings (0,00 sec)
ܕม mysql> SELECT * FROM hoge WHERE val = 4;
+----+-------+ | id | val | +----+-------+ | 4 | 4Four | +----+-------+ 1 row in set, 3 warnings (0,00 sec) mysql> SELECT * FROM hoge WHERE val = 3; Empty set, 3 warnings (0,00 sec)
ܕม -- ςʔϒϧͷߏ `hoge` CREATE TABLE IF NOT EXISTS `hoge`
( `id` int(11) NOT NULL, `val` varchar(255) NOT NULL ); mysql> SELECT * FROM hoge; +----+--------+ | id | val | +----+--------+ | 1 | ONE | | 2 | 2 | | 3 | Three3 | | 4 | 4Four | +----+--------+ 4 rows in set (0,00 sec)
ܕม mysql> SELECT * FROM hoge WHERE val = 4;
+----+-------+ | id | val | +----+-------+ | 4 | 4Four | +----+-------+ 1 row in set, 3 warnings (0,00 sec) mysql> SELECT * FROM hoge WHERE val = 3; Empty set, 3 warnings (0,00 sec) ઌ಄͕ࣈ ඌ͕ࣈ
MySQL 8IZ .Z42-1FPQMFʂʂ
MySQL ࠔͬͨΒ!ZPLV͞Μʹฉ͘
MySQL ԶʮόάͰ͢ΑͶʂʯ
MySQL ԶʮόάͰ͢ΑͶʂʯ ˣ !ZPLV͞Μʮ༷Ͱ͢ʈʈʯ
MySQL WBMͷ߹ɺΛจࣈྻʹΩϟετ͢ΔͷͰͳ͘ɺ WBMΛ%06#-&ʹΩϟετͯ͠ͱൺֱ͍ͯ͠·͢ɻ ӳࣈͰ࢝·Δ453*/(%06#-&ʹΩϟετͰ͖ͣʹΩϟετޙͷ͕ʹͳ Γ·͕͢ɺBCDͷΑ͏ͳจࣈྻʮͰ͖Δͱ͜Ζ·ͰΩϟετ͢ΔʯͷͰ ΩϟετޙͷʹͳΓ·͢ɻ ͭ·ΓͰ͢ ͬͯ͜ͱͰɺʮࣈͰ࢝·Βͳ͍WBMʯͷͷ͚͕ͩݕࡧʹҾ͔͔ͬΔΘ͚Ͱ͢ɻ ͦͯ͠ٯʹࣈ͔Β࢝·Βͳ͍จࣈྻ8)&3&WBMʹ֘͢ΔΘ͚Ͱ͢ɻ
MySQL ܕ
MySQL %"5&5*.&ܕ͕4+*4ͩͱ */%&9͕ޮ͔ͳ͍Ṗ
MySQL %"5&5*.&ܕ͕4+*4ͩͱ */%&9͕ޮ͔ͳ͍Ṗ ˣ ·͊65'͑
MySQL .Z42-ҎԼͩͱ%"5&5*.&ܕ ͷσϑΥϧτʹ $633&/5@%"5&5*.&͑ͳ͍
MySQL
MySQL
MySQL ͦΜͳ༷ཁΒͳ͍ͩΖ͆
MySQL
MySQL ͦΜͳ༷ඞཁͩͬͨʜ
MySQL ਏ͍ʢ͔Β͍
MySQL 1PTUHSF42-ͱҧ͏ͱ͜Ζ
MySQL bTPOF`b40/&`
MySQL bTPOF`b40/&` σϑΥϧτͰ۠ผ͠ͳ͍ όΠφϦܕΛࢦఆͨ͠Βग़དྷΔ
MySQL $)&$,੍ͱ*/%&9ͷ߱ॱ
MySQL $)&$,੍ͱ*/%&9ͷ߱ॱ ˣ ͦΜͳͷແ͍
MySQL $)&$,੍ͱ*/%&9ͷ߱ॱ ˣ ͦΜͳͷແ͍ ͰΫΤϦ௨Δ
MySQL ·͊ͦΜͳࡉ͔͍͜ͱྑ͍
MySQL ֆจࣈ
MySQL
MySQL
MySQL ͦͦֆจࣈΓऔΒΕ
MySQL VOJDPEF @DJͳ߹ ʢྫ͑VUG@HFOFSBM@DJͷ߹ʣ
MySQL ֆจࣈΛؚΊͨҎ߱ͷจࣈ͕ શ෦ࣺͯΒΕͯอଘ͞Ε·͢
MySQL ରࡦͱͯ͠ VUGNC@CJOΛ͏
͋͐͡Μͩ ̍ɹࣗݾհ ̎ɹMySQL ̏ɹPostgreSQL ̐ɹΞϯνύλʔϯ ̑ɹ·ͱΊ
PostgreSQL QHBENJO
PostgreSQL
PostgreSQL
PostgreSQL
PostgreSQL
PostgreSQL ͰෆຬͷΛฉ͔ͳ͍
PostgreSQL ΞϯέʔτͱͬͯΈͨ
PostgreSQL
PostgreSQL
PostgreSQL গͩͬͨ
PostgreSQL ࣾͷ ˣ QIQ.Z"ENJOͰ͢Α
PostgreSQL ࣾͷ ˣ ۀதʹ5XJUUFSͷΞϯέʔτʹ ͑ΕΔਓ͕গͰ͢Αɻ
PostgreSQL ਖ਼ͩͬͨ
PostgreSQL ϩέʔϧ
PostgreSQL ϩέʔϧ σϑΥϧτ04ͷϩέʔϧΛར༻͢Δɻ ͦͷͨΊιʔτ͕ఆͱมΘΔ ˠϩέʔϧʹ$Λࢦఆ͢Δඞཁ͕͋Δ
PostgreSQL 04ʹΑͬͯίϚϯυ͕ҧ͏
PostgreSQL 04ʹΑͬͯίϚϯυ͕ҧ͏ ͪΐͬͱͨ͠ύονΛͯΔͱ͖ʹࠔΔ ಛʹ"OTJCMF͕ࠔΔ
PostgreSQL ϚςϏϡʔͷޭࡑ
PostgreSQL ͩͱϩοΫ͕ΩπΠ Ͱͪΐͬͱྑ͘ͳ͚ͬͨͲ
PostgreSQL ϚςϏϡʔͷࠩߋ৽ͳͲͳ͍
PostgreSQL ࣗಈߋ৽ͳ͍
PostgreSQL !ZPLV ʮͦΕී௨ʹςʔϒϧ࡞Ε͍͍͡ΌΜʯ
PostgreSQL ͙͎ਖ਼
PostgreSQL ࠪϩάແ͍
PostgreSQL Ϛϧνϓϩηεͷͤ͘ʹόοΫΤϯ υϓϩηε͕མͪͨΒશ෦མͪΔ
PostgreSQL 44%ͳͷʹ͍
PostgreSQL 'SFF[Fॲཧ 7"$66.ͷࡍʹ 9*%ͷ࠶ઃఆͷͨΊʹ'6--4$"/͕Δ
PostgreSQL ͦͦ9*%͕CJUͳͷ͕ฅ
PostgreSQL ϙετ0SBDMF%#ʢসʣ
͋͐͡Μͩ ̍ɹࣗݾհ ̎ɹMySQL ̏ɹPostgreSQL ̐ɹΞϯνύλʔϯ ̑ɹ·ͱΊ
Ξϯνύλʔϯ %&-&5&@'"-(
Ξϯνύλʔϯ ϑϥά໊ͬͯલ4&-&$5ͨ͠Β ͱ͔/6--͕͍Δ
Ξϯνύλʔϯ ϑϥά໊ͬͯલ4&-&$5ͨ͠Β ͱ͔/6--͕͍Δ ΧϥϜ໊ͱσʔλ͕ണ͍ͯ͠Δ TUBUVTͷJOU͕ϚδοΫφϯόʔԽ
Ξϯνύλʔϯ ඇਖ਼نԽ
Ξϯνύλʔϯ ඇਖ਼نԽ ͱਖ਼نԽτϨʔυΦϑͱ ݴ͏߹͋Δ͕ਖ਼͍͠σʔλΛ࡞Ζ͏
Ξϯνύλʔϯ ඇਖ਼نԽ ͱਖ਼نԽτϨʔυΦϑͱ ݴ͏߹͋Δ͕ਖ਼͍͠σʔλΛ࡞Ζ͏ ϚςϏϡʔͩͬͨΓΩϟογϡͰ ղܾग़དྷΔࣄଟ͍
Ξϯνύλʔϯ ֎෦ΩʔϨεઃܭ
Ξϯνύλʔϯ ֎෦ΩʔϨεઃܭ ਖ਼نԽ֎෦Ωʔ੍ σʔλΛकΔͨΊʹ͋Δʂʂ
Ξϯνύλʔϯ ͓ͦͦલΒ42-ษڧ͠Ζ
Ξϯνύλʔϯ ͋Δಥવ͘ͳΔ
Ξϯνύλʔϯ ͋Δಥવ͘ͳΔ ˣ σʔλྔ͕ϝϞϦʹΒͳ͘ͳΔ
࣮ફͰϋϚΔ᠘ w ूܭର͕େ͖͘ͳͬͯूܭ࣌ʹϝϞϦʹΒͳ͍ ˠ5FNQPSBSZΛ%JTLʹు͘ͷͰॏ͘ͳΔ w */%&9͕ແ͘5"#-&εΩϟϯΛ͍ͯͨ͠ ˠςετ࣌σʔλ͕খ͔ͬͨ͞ͷͰʹؾ͔ͮͳ͔ͬͨ w ϓϩάϥϜ͕ϧʔϓͷ͚ͩΫΤϦΛ͍͛ͯͨ ˠߦ͕૿͑Δͱϧʔϓճ͕૿͑ͯॏ͘ͳΔ
w ߋ৽͕ܹ͘͠*/%&9ͷஅยԽ͕ൃੜͨ͠ ˠ61%"5&%&-&5&ʹΑͬͯ*/%&9͕அยԽͯ͘͠ͳΔ
࣮ફͰϋϚΔ᠘ w ूܭର͕େ͖͘ͳͬͯूܭ࣌ʹϝϞϦʹΒͳ͍ ˠ5FNQPSBSZΛ%JTLʹు͘ͷͰॏ͘ͳΔ w */%&9͕ແ͘5"#-&εΩϟϯΛ͍ͯͨ͠ ˠςετ࣌σʔλ͕খ͔ͬͨ͞ͷͰʹؾ͔ͮͳ͔ͬͨ w ϓϩάϥϜ͕ϧʔϓͷ͚ͩΫΤϦΛ͍͛ͯͨ ˠߦ͕૿͑Δͱϧʔϓճ͕૿͑ͯॏ͘ͳΔ
w ߋ৽͕ܹ͘͠*/%&9ͷஅยԽ͕ൃੜͨ͠ ˠ61%"5&%&-&5&ʹΑͬͯ*/%&9͕அยԽͯ͘͠ͳΔ ࣮ߦܭըΛ ݟΕΔΑ͏ʹͳΖ͏
͋͐͡Μͩ ̍ɹࣗݾհ ̎ɹMySQL ̏ɹPostgreSQL ̐ɹΞϯνύλʔϯ ̑ɹ·ͱΊ
·ͱΊ %#ͷΕͨࠒʹͬͯ͘Δ
·ͱΊ
·ͱΊ 3%#ͷࣝण໋͕͍
·ͱΊ 3%#ͷࣝण໋͕͍ ˣ ֮͑ΕࣄͰ͍ؒʹཱͭ
·ͱΊ 3%#ͷࣝण໋͕͍ ˣ ֮͑ΕࣄͰ͍ؒʹཱͭ ͔ͩΒͦ͜एऀঁੑʹੋඇڵຯΛ࣋ͬͯཉ͍͠
·ͱΊ %#ͷΫϦςΟΧϧ
·ͱΊ σʔλͷࢮαʔϏεͷࢮ
·ͱΊ %#ͷΫϦςΟΧϧ ˣ ͭ·Γղܾ͢Εӳ༤
·ͱΊ ۪ऀܦݧʹֶͿ ݡऀաڈʹֶͿ
·ͱΊ 3%#ྺ࢙͕͍
·ͱΊ 3%#ྺ࢙͕͍ ˣ ৭Μͳܦݧஊ͔ΒֶΔ
·ͱΊ ͬͱΈΜͳࣦഊஊΛڞ༗͠Α͏ʂ
·ͱΊ 3%#͍͍ͧɻ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ