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
590
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
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
650
失敗できる意思決定とソフトウェアとの正しい歩き方_-_変化と向き合う選択肢/ 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
ZOZOTOWNの進化と信頼性を両立する負荷試験
zozotech
PRO
2
150
Compose 新機能総まとめ / What's New in Jetpack Compose
yanzm
0
160
「ちゃんとやっている」は独りよがりだった ― 不安に寄り添うインシデント対応へ / Towards incident response that addresses anxieties
chmikata
1
4.4k
なぜ人は自分のプロジェクトを 「なんちゃってアジャイル」と 自嘲するのか
kozotaira
0
280
AWS Summit の片隅で、体育座りしながらコミュニティがにぎわう理由を考えた
k_adachi_01
2
370
最適な自走を最小限の支援で — M&Aで拡大する組織で少人数SREが挑んだ1年 / SRE NEXT 2026
genda
0
790
FinOps X 2026 Recap from Engineer Side #JapanFinOps
chacco38
0
270
貴方はどのエンジニアリングを磨くのか
hatyibei
0
110
プロンプト_きのこカンファレンス2026_LT
yurufuwahealer
0
150
プロダクトだけじゃない、社内プロセスにおける自動化・省力化ノススメ
kakehashi
PRO
1
3.3k
クラウド上のデータ復旧で見落としがちな制約: 医療系 SaaS の BCP 設計から得た教訓
kakehashi
PRO
0
3k
cccccc
moznion
0
1.8k
Featured
See All Featured
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
310
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
460
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2.1k
The Spectacular Lies of Maps
axbom
PRO
1
850
Heart Work Chapter 1 - Part 1
lfama
PRO
8
36k
New Earth Scene 8
popppiees
3
2.4k
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.7k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
WCS-LA-2024
lcolladotor
0
680
Paper Plane (Part 1)
katiecoart
PRO
0
9.5k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
55k
HDC tutorial
michielstock
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
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ