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
アプリの実装に役立つBackendとしてのPostgreSQL
Search
Takahashi Ikki
January 20, 2019
Programming
170
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
アプリの実装に役立つBackendとしてのPostgreSQL
2019-01-20 の 岡山モバイルアプリ開発もくもく会 での発表資料です。
Takahashi Ikki
January 20, 2019
More Decks by Takahashi Ikki
See All by Takahashi Ikki
PostgreSQLで手軽にDuckDBを使う!DuckDB&pg_duckdb入門/osc25hi-duckdb
takahashiikki
0
590
PostgreSQLで手軽にDuckDBを使う!DuckDB&pg_duckdb入門/osk2025-duckdb
takahashiikki
2
950
Amazon RDS 向けに提供されている MCP Server と仕組みを調べてみた/jawsug-okayama-2025-aurora-mcp
takahashiikki
1
1.3k
のびしろを広げる巻き込まれ力:偶然を活かすキャリアの作り方/oso2024
takahashiikki
1
970
ビジネスを止めずにシステムリプレースを進める為のCDCという選択肢/osc24ng-2-b
takahashiikki
0
130
アプリケーションエンジニアから見たPostgreSQL16 の新機能/postgresql16-new-information
takahashiikki
0
430
システムリプレースの中でCDCを取り入れている話/chugokudb32-cdc
takahashiikki
1
610
DBリファクタリングのデータリモデリング勘所/stafesstudy-db-modling
takahashiikki
5
2.2k
アプリケーションエンジニアから見たPostgreSQL15 の新機能/postgresql15-new-information
takahashiikki
7
3.2k
Other Decks in Programming
See All in Programming
不変条件と整合性境界—ビジネスが決める設計判断と実現パターン / Invariants and Consistency Boundaries
nrslib
13
4.6k
「エンジニアインターン、どうやって取った?」準備のリアルを語るLT会 Progate BAR
akiomatic
0
130
Mujeres en SEO Summit 2026 - Greatest Disaster Hits en Web Performance
guaca
0
180
ローカルLLMでどこまでコードが書けるか -拡張版 / How much code can be written on a local LLM Extended
kishida
11
4.1k
JavaDoc 再入門
nagise
1
350
ECSアプリログをFireLensでコスト削減しようとしたけど諦めた話 in Fargate×Node.js
akihisaikeda
2
4.2k
TSKaigi Night Talks 2026_TypeScriptでサプライチェーンの整合性を型に閉じ込める
geekplus_tech
0
350
Oxcを導入して開発体験が向上した話
yug1224
4
310
TypeScript+Orvalで実現する型安全かつ堅牢でスケーラブルなマルチチャネル通知基盤 / TSKaigi Night talks ~after conference~
d0riven
0
340
Skillsは効率化、Agentsは"自分の拡張"——Builder時代のエージェント編成(CC Night 2026)
wemra
1
130
LLM本来の能力を解き放つサンドボックス技術とAI民主化への適用
yukukotani
3
4k
エージェンティックRAGにAWSで入門しよう!
har1101
8
1.6k
Featured
See All Featured
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Odyssey Design
rkendrick25
PRO
2
700
Abbi's Birthday
coloredviolet
2
8.1k
Done Done
chrislema
186
16k
Testing 201, or: Great Expectations
jmmastey
46
8.2k
30 Presentation Tips
portentint
PRO
1
320
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.5k
Ruling the World: When Life Gets Gamed
codingconduct
0
250
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.3k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
180
Designing Powerful Visuals for Engaging Learning
tmiket
1
410
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.5k
Transcript
ΞϓϦͷ࣮ʹཱͭ PostgreSQL 2019-01-20 ୈ30ճϞόΠϧΞϓϦ։ൃ͘͘ձ
͓͠ͳ͕͖ 1.͋͏ͱΈʔ 2.PostgreSQLͷྻܕ 3.·ͱΊ
1. ͋͏ͱΈʔ
1. ͋͏ͱΈʔ • ߴڮ Ұٍ • ΦϛΧϨ WebΤϯδχΞ • ຊPostgreSQLϢʔβʔձ
தࠃࢧ෦
גࣜձࣾΦϛΧϨ શࠃ35,000݅ͷࠗ׆ύʔςΟΛ ܝࡌͨ͠ϙʔλϧαΠτ 30ສਓڧͷձһͷํʑʹ͝ར༻͍͍ͯ· ͢ɻ ࠗ׆ͱݴ͑ΦϛΧϨʂ \\͍͍݁ࠗͧʂʂ//
2. PostgreSQLͷྻܕ
ׂͱ͋Γ͕ͪͳΞϓϦ ͷཁ݅ ಥવͰ͕͢ɺօ͞Μ ͜ΕɺͲ͏࣮ͬͯ͠·͢ʁ
λάׂ࣮ͱਏ͗͢ • ొ؆୯ɻ • ฤूͱݕࡧ͕ࠈɻ
1ΧϥϜͷςΩετܕʹcsv۠ΓͰೖΕΔ ߋ৽ਏ͍ɻݕࡧਏ͍ɻ (δΣΠΥʔΫ) tag1, tag2, tag3,... ͬͯΔɻ tagΛ3͔ͭ͠αϙʔτ͠ͳ͍ʁ
ͦ͜ͰྻܕͰ͢Αɻ CREATE TABLE blogs ( title varchar(64), content text, tags
varchar(16)[] )
ྻܕͷྫ INSERT INTO blogs (title, content, tags) VALUES ('͘͘ձ', '໌͘͘ձͰ͢',
'{ "ios", "android" , "PostgreSQL" }') title | contents | tags ------------+----------------------+-------------------------- ͘͘ձ | ໌͘͘ձͰ͢ | {ios,android,PostgreSQL} (1 row)
ྻܕͷϝϦοτ • ΠϯσοΫε͕ޮ͘ɻ • ݕࡧΛ͢Δҝͷԋࢉࢠϝιουͷαϙʔτ͕๛ɻ • औಘޙ֤ݴޠͷྻͱͯ͠༻Ͱ͖Δ ( Djangoͱ͔ͦ ͏.
)
ྻܕͷݕࡧʹ͍ͭͯ 'ios' λά͕͋ΔͷΛݕࡧ. SELECT * FROM blogs WHERE 'ios' =
ANY(tags); title | contents | tags ------------+----------------------+-------------------------- ͘͘ձ | ໌͘͘ձͰ͢ | {ios,android,PostgreSQL} (1 row) ios λά ͕͍ͭͯΔ ͔ͭ android λά͕͍ͭͯΔ Έ͍ͨͳݕࡧͰ͖Δɻ
ྻܕͷऔಘʹ͍ͭͯ SELECT tags[1] AS tag FROM blogs; tag ---------- ios
(1 row) ͦͷ΄͔ʹ tags[2:3] : ྻͷ 2ʙ3൪Λऔಘ tags[2:] : ྻͷ 2൪Ҏ߱Λऔಘ tags[:2] : ྻͷ 2൪ҎԼΛऔಘ ※ 0͔Β։࢝͠ͳ͍ࣄʹதࢭ
ͦͷଞʹָʹཁ݅Λ ຬͨͤΔ SELECT unnest(tags) , count(*) FROM blogs GROUP BY
unnest(tags) ORDER BY count(*) DESC; unnest | count ------------+------- database | 2 ios | 1 PostgreSQL | 1 android | 1 (4 rows)
ྻܕͷσϝϦοτ • ֎෦Ωʔ੍͕షΕͳ͍ɻ => ͷ߹ੑΛอূ͢Δͷ͕͍͠ɻ => λάݕࡧͳͲͷϑϦʔςΩετͷσʔλΛอ࣋͢Δͷʹ ద͍ͯ͠Δɻ
3. ·ͱΊ
3. ·ͱΊ ࠓճɺPostgreSQLͷྻܕͷհΛ͠·ͨ͠ɻ ͱͯڧྗͳΈͰ͕ͪ͢ΖΜϝϦοτɾσϝϦοτ͕͋Γɺ ඞͣۜ͠ͷؙͱ͍͏Θ͚Ͱͳ͍Ͱ͢ɻ ͳͷͰɺunnest() array_agg() Λͬͯ ߦ
<=> ྻؒΛ૬ޓม͢ΔͳͲɺ ϝϦοτɾσϝϦοτΛڗडͰ͖ΔΑ͏ͳܗͰ ͍ͬͯ͘ͷ͕ྑ͍͔ͱࢥ͍·͢ʂ
4. ࠂ தࠃํDBษڧձ 2019-02-02 () ୈ26ճ தࠃํDBษڧձ in Ԭࢁ https://dbstudychugoku.connpass.com/event/112468/
SQLνϡʔχϯά(EXPLAIN)ͷํ๏ύϥϝʔλνϡʔχϯάΛ औΓ্͛·͢ɻ ઈࢍLTൃදऀΛืूதͰ͢ʂʂ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ