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
生誕20周年を迎えたPostgreSQLを使ってみよう
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
soudai sone
PRO
November 05, 2016
Technology
610
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
生誕20周年を迎えたPostgreSQLを使ってみよう
OSC東京の登壇資料です
https://www.ospn.jp/osc2016-fall/modules/eguide/event.php?eid=15
soudai sone
PRO
November 05, 2016
More Decks by soudai sone
See All by soudai sone
ビジネスを止めない技術的負債の返済のための戦略とその手法 - 技術的負債と向き合う / Complexity and Simplicity
soudai
PRO
3
710
AIを活用するために決めた "やらないこと" - 価値に注目する / Not betting on AI
soudai
PRO
3
710
目の前の楽しいが人生を変える - コミュニティの螺旋の歩き方と楽しむコツ / change your life
soudai
PRO
5
790
医療の現場を変革に挑戦した半年間の軌跡 - PythonとAIで現場を変える / From Code to Care
soudai
PRO
1
750
形骸化しない社内勉強会の取り組み - オーナーシップの作り方 / In-house study session
soudai
PRO
1
430
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.8k
APMの世界から見るOpenTelemetryのTraceの世界 / OpenTelemetry in the Java
soudai
PRO
2
920
Other Decks in Technology
See All in Technology
オントロジーって 結局なにもの? AI エージェントに「意味」を渡す知識設計の話
greenmidori
0
170
Rustuna: Rustによる高速なOptuna実装
pfn
PRO
0
190
AI時代のPRレビューにどう向き合うか?
kairim0
1
240
DWH の限界突破! AI エージェント向け爆速リアルタイムデータ基盤 ClickHouse
jozono
1
470
Metadata - Section 1: HTML Basics
mohab1
0
110
Benchmarking Disaggregated Serving on vLLM + Dynamo with a Real Coding-Agent Workload
nttcom
1
190
コンテナ運用におけるネットワーク・コンテナコストの削減方法/How to Reduce Network and Container Costs in Container Operations
masakiokuda
1
140
V8のArray.prototype.flatを最大約20倍速くするまでと、巨大OSSへの大規模コミットの道のり
riyaamemiya
0
290
ソフトウェア ファクトリー - 再現性のあるソフトウェアの工場づくり / Software factory
iktakahiro
6
4.9k
日本語に強いオープンな大規模言語モデル「LLM-jp」
odashi
4
1.1k
『SAR衛星データ解析入門』のご紹介とその応用
syuchimu
0
120
「事実」を「計測」して、「解釈」する 〜AWS Lambdaのメモリ最適解の見つけ方〜
maimyyym
0
170
Featured
See All Featured
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
3
3.9k
Side Projects
sachag
456
43k
The SEO Collaboration Effect
kristinabergwall1
1
590
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.2k
Making the Leap to Tech Lead
cromwellryan
135
10k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
330
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
380
Optimising Largest Contentful Paint
csswizardry
37
4k
Crafting Experiences
bethany
1
380
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
69
67k
What the history of the web can teach us about the future of AI
inesmontani
PRO
2
740
Transcript
ੜ20पΛܴ͑ͨ PostgreSQLΛͬͯΈΑ͏ ΦʔϓϯιʔεΧϯϑΝϨϯεˏ౦ژ
What is it? PostgreSQLࠓͰੜ͔Βॕ20ʂ
ܥ࣌ ෭߹ͤ 1-5DM 1-QH42- 7JFX
ϚϧνόΠτจࣈྻαϙʔτ .7$$ Ұ࣌ද $"4& */5&34&$5 &9$&15 ܥ࣌ ֎෦Ωʔ੍ 8"- 50"45 065&3+0*/ ίϯΧϨϯτ7"$66. 1-1ZUIPO εΩʔϚ υϝΠϯ 13&1"3& *1W JOGPSNBUJPO@TDIFNB ܥ࣌ .JDSPTPGU8JOEPXTରԠ 4"7&10*/5 1*53 දྖҬ ૬ίϛοτ 30-& ߦڞ༗ϩοΫ ςʔϒϧɾύʔςΟγϣχϯά ΥʔϜελϯόΠ (*/ ߋ৽ॲཧੑೳͷ্ 9.-σʔλܕ શจݕࡧ +*49 &/6.ܕ 66*%ܕ ࠶ؼΫΤϦ Οϯυؔ ྻ୯ҐͷΞΫηε੍ޚ 42-ͱؔͷੑೳղੳػೳ
ܥ࣌ ˞ͷ࣍ͰܾఆࡁΈ ܥ࣌ ݱࡏ ϨϓϦέʔγϣϯ Ұׅݖݶมߋ
ಗ໊ϓϩγʔδϟ CJU8JOEPXTαϙʔτ Ҡಈฏۉ ྻ݅τϦΨ Ұҙੑ੍ͷԆ ഉଞ੍ ಉظϨϓϦέʔγϣϯ ֎෦ςʔϒϧ ύοέʔδཧ 6/-0((&%ςʔϒϧ ߋ৽Մೳͳ8*5)۟ ۙݕࡧ 4&-JOVYݖݶ੍ޚ ΠϯσοΫεΦϯϦʔεΩϟϯ ΧεέʔυϨϓϦέʔγϣϯ +40/ܕ ൣғܕ ϚςϦΞϥΠζυϏϡʔ ֎෦ςʔϒϧͷॻ͖ग़͠ ΠϕϯττϦΨ σʔλϖʔδɾνΣοΫαϜ -"5&3"-۟ +40/#ܕ 42-͔Βͷαʔόʔઃఆͷมߋ ϨϓϦέʔγϣϯεϩοτ 614&35ػೳ ϒϩοΫϨϯδΠϯσοΫε ߦ୯ҐηΩϡϦςΟ੍ޚίϚϯυ ύϥϨϧΫΤϦ ෳಉ࣌ελϯόΠ શจݕࡧͷϑϨʔζରԠ $01:จͷSFUVSOJOH۟ରԠ
ܥ࣌ ˞ͷ࣍ͰܾఆࡁΈ ܥ࣌ ݱࡏ ϨϓϦέʔγϣϯ Ұׅݖݶมߋ
ಗ໊ϓϩγʔδϟ CJU8JOEPXTαϙʔτ Ҡಈฏۉ ྻ݅τϦΨ Ұҙੑ੍ͷԆ ഉଞ੍ ಉظϨϓϦέʔγϣϯ ֎෦ςʔϒϧ ύοέʔδཧ 6/-0((&%ςʔϒϧ ߋ৽Մೳͳ8*5)۟ ۙݕࡧ 4&-JOVYݖݶ੍ޚ ΠϯσοΫεΦϯϦʔεΩϟϯ ΧεέʔυϨϓϦέʔγϣϯ +40/ܕ ൣғܕ ϚςϦΞϥΠζυϏϡʔ ֎෦ςʔϒϧͷॻ͖ग़͠ ΠϕϯττϦΨ σʔλϖʔδɾνΣοΫαϜ -"5&3"-۟ +40/#ܕ 42-͔Βͷαʔόʔઃఆͷมߋ ϨϓϦέʔγϣϯεϩοτ 614&35ػೳ ϒϩοΫϨϯδΠϯσοΫε ߦ୯ҐηΩϡϦςΟ੍ޚίϚϯυ ύϥϨϧΫΤϦ ෳಉ࣌ελϯόΠ શจݕࡧͷϑϨʔζରԠ $01:จͷSFUVSOJOH۟ରԠ ܥ͚ͩͰࡌ͖ͤΕͳ͍΄ͲͷػೳՃվળ
ܥ࣌ ˞ͷ࣍ͰܾఆࡁΈ ܥ࣌ ݱࡏ ϨϓϦέʔγϣϯ Ұׅݖݶมߋ
ಗ໊ϓϩγʔδϟ CJU8JOEPXTαϙʔτ Ҡಈฏۉ ྻ݅τϦΨ Ұҙੑ੍ͷԆ ഉଞ੍ ಉظϨϓϦέʔγϣϯ ֎෦ςʔϒϧ ύοέʔδཧ 6/-0((&%ςʔϒϧ ߋ৽Մೳͳ8*5)۟ ۙݕࡧ 4&-JOVYݖݶ੍ޚ ΠϯσοΫεΦϯϦʔεΩϟϯ ΧεέʔυϨϓϦέʔγϣϯ +40/ܕ ൣғܕ ϚςϦΞϥΠζυϏϡʔ ֎෦ςʔϒϧͷॻ͖ग़͠ ΠϕϯττϦΨ σʔλϖʔδɾνΣοΫαϜ -"5&3"-۟ +40/#ܕ 42-͔Βͷαʔόʔઃఆͷมߋ ϨϓϦέʔγϣϯεϩοτ 614&35ػೳ ϒϩοΫϨϯδΠϯσοΫε ߦ୯ҐηΩϡϦςΟ੍ޚίϚϯυ ύϥϨϧΫΤϦ ෳಉ࣌ελϯόΠ શจݕࡧͷϑϨʔζରԠ $01:จͷSFUVSOJOH۟ରԠ ܥ͚ͩͰࡌ͖ͤΕͳ͍΄ͲͷػೳՃվળ ʹϦϦʔε͞Εͨ ݸͷػೳՃվળ͕͋Δʂ
ܥ࣌ ˞ͷ࣍ͰܾఆࡁΈ ܥ࣌ ݱࡏ ϨϓϦέʔγϣϯ Ұׅݖݶมߋ
ಗ໊ϓϩγʔδϟ CJU8JOEPXTαϙʔτ Ҡಈฏۉ ྻ݅τϦΨ Ұҙੑ੍ͷԆ ഉଞ੍ ಉظϨϓϦέʔγϣϯ ֎෦ςʔϒϧ ύοέʔδཧ 6/-0((&%ςʔϒϧ ߋ৽Մೳͳ8*5)۟ ۙݕࡧ 4&-JOVYݖݶ੍ޚ ΠϯσοΫεΦϯϦʔεΩϟϯ ΧεέʔυϨϓϦέʔγϣϯ +40/ܕ ൣғܕ ϚςϦΞϥΠζυϏϡʔ ֎෦ςʔϒϧͷॻ͖ग़͠ ΠϕϯττϦΨ σʔλϖʔδɾνΣοΫαϜ -"5&3"-۟ +40/#ܕ 42-͔Βͷαʔόʔઃఆͷมߋ ϨϓϦέʔγϣϯεϩοτ 614&35ػೳ ϒϩοΫϨϯδΠϯσοΫε ߦ୯ҐηΩϡϦςΟ੍ޚίϚϯυ ύϥϨϧΫΤϦ ෳಉ࣌ελϯόΠ શจݕࡧͷϑϨʔζରԠ $01:จͷSFUVSOJOH۟ରԠ ܥ͚ͩͰࡌ͖ͤΕͳ͍΄ͲͷػೳՃվળ ʹϦϦʔε͞Εͨ ݸͷػೳՃվળ͕͋Δʂ ʑ։ൃ͕׆ੑԽ͍ͯ͠Δ
What is it? • 6ܥ ඪ४SQLʹ४ڌ͠ɺMVCCͳͲͷRDBMSͱͯ͠ͷ جຊతͳػೳΛ࣮ • 7ܥ ੍WALΛखʹೖΕͯACIDΛຬͨ͢
• 8ܥ VACUUMHOTͳͲͷӡ༻ʹ ݁͢ΔύϑΥʔϚϯεվળ • 9ܥ ϨϓϦέʔγϣϯOLTPɾDWH྆ํͷ໘Ͱੑೳ্
What is it? ਐԽ͠ଓ͚ΔPostgreSQL
What is it? ਐԽ͠ଓ͚ΔPostgreSQL ↓ ͦΜͳPostgreSQLΛબͿཧ༝
What is it? ͍ͨ͘ͳΔPostgreSQLͷັྗ Λօ༷ʹ͍͑ͨͱࢥ͍·͢
͋͐͡Μͩ ̍ɹࣗݾհ ̎ɹPostgreSQLͷ࠷৽ࣄ ̏ɹPostgreSQLͱଞDB ̐ɹPostgreSQLͷҠߦ ̑ɹ·ͱΊ
͋͐͡Μͩ ̍ɹࣗݾհ ̎ɹPostgreSQLͷ࠷৽ࣄ ̏ɹPostgreSQLͱଞDB ̐ɹPostgreSQLͷҠߦ ̑ɹ·ͱΊ
ࣗݾհ ໊લɿીࠜɹେʢͦͶɹ͚ͨͱʣ ྸɿ32ࡀʢࡾਓͷࢠڙ͕͍·͢ʣ ৬ۀɿגࣜձࣾɹΦϛΧϨʢCTOʣ ॴଐɿຊPostgreSQLϢʔβձ ɹɹɹதࠃࢧ෦ ࢧ෦ ɹɹٕज़తʹLLܥݴޠͱ͔RDB͕͖Ͱ͢
ࣗݾհ ໊લɿીࠜɹେʢͦͶɹ͚ͨͱʣ ྸɿ32ࡀʢࡾਓͷࢠڙ͕͍·͢ʣ ৬ۀɿגࣜձࣾɹΦϛΧϨʢCTOʣ ॴଐɿຊPostgreSQLϢʔβձ ɹɹɹதࠃࢧ෦ ࢧ෦ ɹɹٕज़తʹLLܥݴޠͱ͔RDB͕͖Ͱ͢
தࠃํDBษڧձ https://dbstudychugoku.github.io/
͋͐͡Μͩ ̍ɹࣗݾհ ̎ɹPostgreSQLͷ࠷৽ࣄ ̏ɹPostgreSQLͱଞDB ̐ɹPostgreSQLͷҠߦ ̑ɹ·ͱΊ
PostgreSQLͷ࠷৽ࣄ ·ͣ1PTUHSF42-͓͞Β͍ ʢΒͳ͍ਓͷͨΊʹʣ
PostgreSQLͷ࠷৽ࣄ
PostgreSQLͷ࠷৽ࣄ 1PTUHSF42-ͷ˓˓͕͍͢͝
PostgreSQLͷ࠷৽ࣄ 1PTUHSF42-ͷ˓˓͕͍͢͝ w 42-ͷߏจ͕๛ w αʔυύʔςΟͷॆ࣮͕ੌ͍ w ֦ுػೳ͕ੌ͍
PostgreSQLͷ࠷৽ࣄ ࠓͷҰ൪ͷྲྀߦΓίϨ
PostgreSQLͷ࠷৽ࣄ 1PTUHSF42-ͷσʔλੳ͕͍͢͝
PostgreSQLͱσʔλੳ ࢛ଇԋࢉͱ͔ ػցֶशͱ͔ ܗଶૉղੳͱ͔ Պֶܭࢉͱ͔
PostgreSQLͱσʔλੳ 1ZUIPOσʔλੳʹڧ͍
PostgreSQLͱσʔλੳ 1PTUHSF42-1-1ZUIPO͕͋Δ
ܥ࣌ ෭߹ͤ 1-5DM 1-QH42- 7JFX
ϚϧνόΠτจࣈྻαϙʔτ .7$$ Ұ࣌ද $"4& */5&34&$5 &9$&15 ܥ࣌ ֎෦Ωʔ੍ 8"- 50"45 065&3+0*/ ίϯΧϨϯτ7"$66. 1-1ZUIPO εΩʔϚ υϝΠϯ 13&1"3& *1W JOGPSNBUJPO@TDIFNB ܥ࣌ .JDSPTPGU8JOEPXTରԠ 4"7&10*/5 1*53 දྖҬ ૬ίϛοτ 30-& ߦڞ༗ϩοΫ ςʔϒϧɾύʔςΟγϣχϯά ΥʔϜελϯόΠ (*/ ߋ৽ॲཧੑೳͷ্ 9.-σʔλܕ શจݕࡧ +*49 &/6.ܕ 66*%ܕ ࠶ؼΫΤϦ Οϯυؔ ྻ୯ҐͷΞΫηε੍ޚ 42-ͱؔͷੑೳղੳػೳ
PostgreSQLͱσʔλੳ ͔ͳΓલ͔Βඪ४Ͱ αϙʔτ͞Ε͍ͯΔ
PostgreSQLͱσʔλੳ ͦͯ͠1-1ZUIPOͰ -JCSBSZΛݺΔ
PostgreSQLͱσʔλੳ ͔͔͠ΒύϥϨϧΫΤϦରԠʂ
PostgreSQLͱσʔλੳ ͭ·Γ1ZUIPOͰετΞυॻ͍ͯ 42-ͰؔݺͿ͚ͩͰσʔλੳʂ
PostgreSQLͱσʔλੳ બΔλΠϓ 1ZUIPOPS1ZUIPO
PostgreSQLͱσʔλੳ σʔλੳͰ1ZUIPOΛ Θͳ͍ཧ༝ͳ͍
PostgreSQLͱσʔλੳ ྫ͑ʜ w සग़͢ΔϫʔυΛௐɺྲྀߦΛ͢Δ w ϒϩάʹཁػೳΛՃ͢Δ w ػցֶशΛར༻ͯ͠ະདྷΛ༧͢Δ
PostgreSQLͱσʔλੳ ετΞυͰݺΔ1ZUIPO͕ݺΔϝϦοτ wΞϓϦέʔγϣϯଆͷίʔυ͕γϯϓϧʹͳΔ wσʔλΛݺΔͨΊɺωοτϫʔΫͷϘτϧωοΫΛ ղফग़དྷΔ wύϥϨϧΫΤϦͱซ༻͢ΔࣄͰϝχʔίΞΛ׆͔ͨ͠ ूܭ͕Ͱ͖Δ wΞυϗοΫͳΫΤϦͱΈ߹Θ͢ࣄͰॊೈͰਝʹ ੳग़དྷΔ
PostgreSQLͱσʔλੳ σʔλੳτϥΠΞϯυΤϥʔ ˣ ؔΛ༻ҙ͢Δ͜ͱͰ ϩδοΫͷ࠶ར༻͕͍͢͠
PostgreSQLͱσʔλੳ σϞ
PostgreSQLͱσʔλੳ σʔλੳτϥΠΞϯυΤϥʔ
PostgreSQLͱσʔλੳ σʔλੳτϥΠΞϯυΤϥʔ ˣ ؔΛ༻ҙ͢Δ͜ͱͰ ϩδοΫͷ࠶ར༻͕͍͢͠
PostgreSQLͱσʔλੳ σʔλੳτϥΠΞϯυΤϥʔ ˣ ؔΛ༻ҙ͢Δ͜ͱͰ ϩδοΫͷ࠶ར༻͕͍͢͠ ֬ఆͨ͠σʔλੳ༰,1*ͱ ͯ͠ॳΊͯΞϓϦʹ͢Ε͍͍
PostgreSQLͷ࠷৽ࣄ ଞʹ࣌ΛઌऔΓ͢Δػೳ͕ຬࡌ w *1WରԠ w '%8 ֎෦%#࿈ܞ w &YUFOTJPO
֦ு
͋͐͡Μͩ ̍ɹࣗݾհ ̎ɹPostgreSQLͷ࠷৽ࣄ ̏ɹPostgreSQLͱଞDB ̐ɹPostgreSQLͷҠߦ ̑ɹ·ͱΊ
PostgresͱଞDB ༻%#ͱ1PTUHSF42-
PostgresͱଞDB ༻%# w 0SBDMF%# w 42-4FSWFS w %#
PostgresͱଞDB 3%#ͷجຊతͳ෦Ͱ ͍͍͖ͭͯͨ
PostgresͱଞDB w ύϥϨϧΫΤϦ w 42-ߏจ w όοΫΞοϓԽ w શจݕࡧͳͲͷ֦ு
PostgresͱଞDB ·ͩ·ͩ༻%#ʹ ෛ͚͍ͯΔ෦͋Δ
PostgresͱଞDB w (6*্Ͱͷૢ࡞ w ӡ༻ܥͷػೳ w ࠪܥͷػೳ w ྻࢦ*/%&9ࣗಈߋ৽ϚςϏϡʔ ͷΑ͏ͳ%8)ͷػೳ
PostgresͱଞDB ٯʹ༻%#ʹউͬͯΔ෦͋Δ
PostgresͱଞDB w ϥΠηϯεͷࣗ༝ w +40/#ܕͳͲͷ๛ͳܕ w ֦ுੑͷߴ͞ w 8"'ͱͷ૬ੑͷྑ͞
PostgresͱଞDB σϞ
PostgresͱଞDB 1PTUHSF42-ͱ044%#
PostgresͱଞDB 044%# w .Z42- w 42-JUF w 'JSFCJSE
PostgresͱଞDB ॅΈ͚͕ਐΜͰ͖ͨ ˣ ͦΕͧΕͷ։ൃํͷҧ͍
PostgresͱଞDB 044%# w .Z42- w 42-JUF w 'JSFCJSE
PostgresͱଞDB 044%# w .Z42- w 42-JUF w 'JSFCJSE
PostgresͱଞDB 044%# w .Z42- w 42-JUF w 'JSFCJSE
͋͐͡Μͩ ̍ɹࣗݾհ ̎ɹPostgreSQLͷ࠷৽ࣄ ̏ɹPostgreSQLͱଞDB ̐ɹPostgreSQLͷҠߦ ̑ɹ·ͱΊ
PostgreSQLͷҠߦ 0SBDMF%#͔Β1PTUHSF42-
PostgreSQLͷҠߦ 4PGUXBSF%FTJHO݄߸ΛಡΜͰ
PostgreSQLͷҠߦ ݁
PostgreSQLͷҠߦ 0SBDMF4&͔Βେମ͍͚Δ
PostgreSQLͷҠߦ .Z42-େମ͍͚Δ
PostgreSQLͷҠߦ ༻%#ͷߴౕ͍͍͠
͋͐͡Μͩ ̍ɹࣗݾհ ̎ɹPostgreSQLͷ࠷৽ࣄ ̏ɹPostgreSQLͱଞDB ̐ɹPostgreSQLͷҠߦ ̑ɹ·ͱΊ
·ͱΊ 1PTUHSF42-ؒҧ͍ͳ͘ ࠓޙ044%#ͷओྗʹͳΔ
·ͱΊ ेೋʹ༻%#ͱઓ͑Δ
·ͱΊ ेೋʹ༻%#ͱઓ͑Δ ˣ ࢿʹରͯ͠අ༻ରޮՌͷߴ͍ଘࡏ
None
None
Software Designͷಛूهࣄͷൈຊ ϒʔεͰແྉͯ͠·͢
࣌ ॴɹळ༿ݪ"1
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ