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
生誕20周年を迎えたPostgreSQLを使ってみよう
Search
soudai sone
PRO
November 05, 2016
Technology
600
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
医療の現場を変革に挑戦した半年間の軌跡 - PythonとAIで現場を変える / From Code to Care
soudai
PRO
1
670
形骸化しない社内勉強会の取り組み - オーナーシップの作り方 / In-house study session
soudai
PRO
1
260
Djangoユーザが知っ得なPostgreSQL機能 - 設計の選択肢を増やす / Djang-use-PostgreSQL
soudai
PRO
1
310
AI時代における具体と抽象の往復 - 日常にチャンスがある / Moving Between the Concrete
soudai
PRO
9
4.3k
制約を設計する - 非決定性との境界線 / Designing constraints
soudai
PRO
6
4.5k
APMの世界から見るOpenTelemetryのTraceの世界 / OpenTelemetry in the Java
soudai
PRO
2
800
失敗できる意思決定とソフトウェアとの正しい歩き方_-_変化と向き合う選択肢/ Designing for Reversible Decisions
soudai
PRO
16
7k
外部キー制約の知っておいて欲しいこと - RDBMSを正しく使うために必要なこと / FOREIGN KEY Night
soudai
PRO
17
6.9k
手を動かしながら学ぶデータモデリング - 論理設計から物理設計まで / Data modeling
soudai
PRO
45
11k
Other Decks in Technology
See All in Technology
コスト最適化の「めんどくさい」を AWS FinOps Agent でチョット楽にする
classmethod_kaz
0
270
推論の観測、できていますか? 〜 Google Cloud Gemini Enterprise Agent Platformで 3つの Gemini モデルを実測して踏んだ、評価の罠 〜
shukob
PRO
0
160
AIとペアプロを始める。人とのペアプロをやめる。ペアプロの良さを改めて知る。もっと好きになった。 / Rediscovering Pair Programming
honyanya
1
280
エンタープライズInnerSourceと開発者ポータル
nogikazuma
1
110
V8コントリビュート超入門
riyaamemiya
0
140
振り返りこそエンジニアの本領
negima
0
330
Tab5をRubyで動くパソコンにする
kishima
1
250
設計の世代交代を乗り越える、14年続くAndroidアプリの開発戦略
sansantech
PRO
1
150
少人数データチームのDevin活用実践事例
runandy16
2
450
2026-09-04 SRE Tech Talk #15 怠惰なTerraform / Lazy Terraform
masasuzu
0
210
Sigmaユーザーのための有用リソース一挙公開 & Sigmaで使えるMCP #sigma_ucj /useful-resources-for-sigma-computing-users-and-mcps-with-sigma
shinyaa31
0
150
AndroidでHDRメディアを「壊さずに」扱う
chigichan24
0
410
Featured
See All Featured
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.1k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
530
How to train your dragon (web standard)
notwaldorf
97
6.8k
First, design no harm
axbom
PRO
2
1.3k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
560
30 Presentation Tips
portentint
PRO
1
390
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.3k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
The browser strikes back
jonoalderson
0
1.6k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.3k
The SEO Collaboration Effect
kristinabergwall1
1
550
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
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ