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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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
外部キー制約の知っておいて欲しいこと - RDBMSを正しく使うために必要なこと / FOREIGN KEY Night
soudai
PRO
12
4.7k
手を動かしながら学ぶデータモデリング - 論理設計から物理設計まで / Data modeling
soudai
PRO
33
8.5k
これからアウトプットする人たちへ - アウトプットを支える技術 / that support output
soudai
PRO
20
8.1k
コミュニティと計画的偶発性理論 - 出会いが人生を変える / Life-Changing Encounters
soudai
PRO
8
3.5k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
62
49k
変化に強いテーブル設計の勘所 / Table design that is resistant to changes
soudai
PRO
68
20k
抽象化をするということ - 具体と抽象の往復を身につける / Abstraction and concretization
soudai
PRO
51
34k
目の前の仕事と向き合うことで成長できる - 仕事とスキルを広げる / Every little bit counts
soudai
PRO
41
56k
ソフトウェアエンジニアとしてキャリアの螺旋を駆け上がる方法 - 経験と出会いが人生を変える / Career-Anchor-Drive
soudai
PRO
20
7.1k
Other Decks in Technology
See All in Technology
変化するコーディングエージェントとの現実的な付き合い方 〜Cursor安定択説と、ツールに依存しない「資産」〜
empitsu
4
1.3k
ClickHouseはどのように大規模データを活用したAIエージェントを全社展開しているのか
mikimatsumoto
0
190
広告の効果検証を題材にした因果推論の精度検証について
zozotech
PRO
0
120
All About Sansan – for New Global Engineers
sansan33
PRO
1
1.3k
SREのプラクティスを用いた3領域同時 マネジメントへの挑戦 〜SRE・情シス・セキュリティを統合した チーム運営術〜
coconala_engineer
2
590
生成AI時代にこそ求められるSRE / SRE for Gen AI era
ymotongpoo
5
2.7k
プロポーザルに込める段取り八分
shoheimitani
1
170
FinTech SREのAWSサービス活用/Leveraging AWS Services in FinTech SRE
maaaato
0
120
Tebiki Engineering Team Deck
tebiki
0
24k
Meshy Proプラン課金した
henjin0
0
250
日本語テキストと音楽の対照学習の技術とその応用
lycorptech_jp
PRO
1
420
MCPでつなぐElasticsearchとLLM - 深夜の障害対応を楽にしたい / Bridging Elasticsearch and LLMs with MCP
sashimimochi
0
140
Featured
See All Featured
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.1k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.2k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
90
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
0
100
Ruling the World: When Life Gets Gamed
codingconduct
0
140
Raft: Consensus for Rubyists
vanstee
141
7.3k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
72
Faster Mobile Websites
deanohume
310
31k
The World Runs on Bad Software
bkeepers
PRO
72
12k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
420
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
730
Tell your own story through comics
letsgokoyo
1
800
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%#͍͍ͧɻ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ