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
この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
Djangoユーザが知っ得なPostgreSQL機能 - 設計の選択肢を増やす / Djang-use-PostgreSQL
soudai
PRO
1
270
AI時代における具体と抽象の往復 - 日常にチャンスがある / Moving Between the Concrete
soudai
PRO
9
3.7k
制約を設計する - 非決定性との境界線 / Designing constraints
soudai
PRO
6
3.9k
APMの世界から見るOpenTelemetryのTraceの世界 / OpenTelemetry in the Java
soudai
PRO
2
640
失敗できる意思決定とソフトウェアとの正しい歩き方_-_変化と向き合う選択肢/ Designing for Reversible Decisions
soudai
PRO
12
3.8k
外部キー制約の知っておいて欲しいこと - RDBMSを正しく使うために必要なこと / FOREIGN KEY Night
soudai
PRO
16
6.7k
手を動かしながら学ぶデータモデリング - 論理設計から物理設計まで / Data modeling
soudai
PRO
45
11k
これからアウトプットする人たちへ - アウトプットを支える技術 / that support output
soudai
PRO
21
8.8k
コミュニティと計画的偶発性理論 - 出会いが人生を変える / Life-Changing Encounters
soudai
PRO
8
5k
Other Decks in Technology
See All in Technology
しぶいSRE: サーバから見えない障害にどう向き合うか。ラストワンマイルのデバッグ実践 / Shibui SRE
kanny
12
5.1k
どうして今サーバーサイドKotlinを選択したのか
nealle
0
210
AI Agent SaaS を支える自社仮想化基盤への挑戦と実運用 / ai-agent-saas-virtualization
flatt_security
2
3k
AIで政治は変わるのか? — 中高生と考えたAI時代の民主主義(東海高校サタデープログラム)
eitarosuda
0
400
Text-to-SQLをAgentCoreで実現し、生成されるSQLの精度を定量的に評価する
yakumo
2
680
キャリアの中で本を作る / Making a Book During Your Career
ak1210
0
120
Road to SRE NEXTの今までとこれから
hiroyaonoe
0
220
LiDAR SLAMの実装とセンサ融合 ~Lie群からContinuous-Time LIOまで~
naokiakai
1
1k
生成AI活用によるODC欠陥分析の分類高速化の実践と導入効果 / 20260703 Suguru Ishii
shift_evolve
PRO
2
100
ループエンジニアリングでE2Eテストを実践
noriyukitakei
0
310
次世代ランサムウェア対策の考察 / 20260704 Mitsutoshi Matsuo
shift_evolve
PRO
5
1.7k
Amazon EVS で VCF 9.0 / 9.1 のサポート開始まとめ
mtoyoda
0
280
Featured
See All Featured
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
1.9k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
380
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
220
Google's AI Overviews - The New Search
badams
0
1.1k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
300
How to train your dragon (web standard)
notwaldorf
97
6.7k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.4k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
350
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.9k
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%#͍͍ͧɻ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ