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
44
31k
このRDBについて私は驚くべき闇を見つけたがそこを発表するにはネットは怖すぎる
YAP(achimon)C::Asia Hachioji 2016midの資料です。
soudai sone
PRO
July 03, 2016
Tweet
Share
More Decks by soudai sone
See All by soudai sone
手を動かしながら学ぶデータモデリング - 論理設計から物理設計まで / Data modeling
soudai
PRO
32
8.1k
これからアウトプットする人たちへ - アウトプットを支える技術 / that support output
soudai
PRO
20
7.9k
コミュニティと計画的偶発性理論 - 出会いが人生を変える / Life-Changing Encounters
soudai
PRO
8
1.9k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
61
48k
変化に強いテーブル設計の勘所 / Table design that is resistant to changes
soudai
PRO
68
20k
抽象化をするということ - 具体と抽象の往復を身につける / Abstraction and concretization
soudai
PRO
51
33k
目の前の仕事と向き合うことで成長できる - 仕事とスキルを広げる / Every little bit counts
soudai
PRO
41
55k
ソフトウェアエンジニアとしてキャリアの螺旋を駆け上がる方法 - 経験と出会いが人生を変える / Career-Anchor-Drive
soudai
PRO
20
7k
新婚19年目から学ぶ夫婦円満の正しい歩き方 / Life is beautiful
soudai
PRO
12
4.9k
Other Decks in Technology
See All in Technology
AI時代のアジャイルチームを目指して ー スクラムというコンフォートゾーンからの脱却 ー / Toward Agile Teams in the Age of AI
takaking22
11
6.4k
国井さんにPurview の話を聞く会
sophiakunii
1
370
手軽に作れる電卓を作って イベントソーシングに親しもう CQRS+ESカンファレンス2026
akinoriakatsuka
0
230
ソフトとハード両方いけるデータ人材の育て方
waiwai2111
0
160
Scrum Guide Expansion Pack が示す現代プロダクト開発への補完的視点
sonjin
0
610
Claude Codeを使った情報整理術
knishioka
20
12k
迷わない!AI×MCP連携のリファレンスアーキテクチャ完全ガイド
cdataj
0
470
「駆動」って言葉、なんかカッコイイ_Mitz
comucal
PRO
0
140
Databricks Free Editionで始めるLakeflow SDP
taka_aki
0
100
AI Agent Agentic Workflow の可観測性 / Observability of AI Agent Agentic Workflow
yuzujoe
1
810
サラリーマンソフトウェアエンジニアのキャリア
yuheinakasaka
38
18k
Digitization部 紹介資料
sansan33
PRO
1
6.5k
Featured
See All Featured
SEO for Brand Visibility & Recognition
aleyda
0
4.2k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
78
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Fireside Chat
paigeccino
41
3.8k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
240
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
59
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
420
Scaling GitHub
holman
464
140k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.1k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
51
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
270
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%#͍͍ͧɻ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ